:root {
    /* ---- Global Palette (Midnight Slate & Muted Champagne) ---- */
    --primary-bg: #020617;
    --secondary-bg: #0f172a;
    --surface-bg: rgba(15, 23, 42, 0.7);

    /* Static Gentle Theme (Golden Yellow) */
    --primary: #eab308;
    --primary-light: #fef08a;
    --primary-dark: #ca8a04;

    --accent: #eab308;
    --accent-glow: rgba(234, 179, 8, 0.15);

    /* Text Colors (Standardized Gentle) */
    --text-primary: #F1F5F9;
    --text-secondary: #94A3B8;
    --text-muted: #64748B;

    /* Glassmorphism (Global Dark) */
    --glass-bg: rgba(15, 23, 42, 0.85);
    --glass-border: rgba(255, 255, 255, 0.1);
    --glass-highlight: rgba(255, 255, 255, 0.05);
    --glass-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.5);

    /* ---- Constants ---- */
    --font-heading: 'Playfair Display', serif;
    --font-body: 'Inter', sans-serif;
    --font-script: 'Great Vibes', cursive;
    --container-width: 1200px;
    --border-radius-lg: 24px;
    --border-radius-md: 16px;
    --border-radius-sm: 8px;
    --ease-out: cubic-bezier(0.215, 0.61, 0.355, 1);
    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
    --transition-fast: 0.2s var(--ease-out);
    --transition-normal: 0.4s var(--ease-out);

    /* Shadow Depth */
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2);
    --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.4);
    --shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.5);
}

/* ---- Event Page Overrides (Light Mode / Platinum) ---- */
.event-page {
    --primary-bg: #FFFFFF;
    --surface-bg: rgba(255, 255, 255, 0.8);
    --accent: #1e293b;
    --text-primary: #1e293b;
    --text-secondary: #475569;
    --text-muted: #94a3b8;
    --glass-bg: rgba(255, 255, 255, 0.92);
    --glass-border: rgba(0, 0, 0, 0.1);
    --glass-highlight: rgba(255, 255, 255, 0.8);
    --glass-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.1);
    --container-width: 100%;
}

/* ============================================
   RESET & BASE
   ============================================ */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

code {
    word-break: break-all;
    overflow-wrap: anywhere;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    background-color: #020617;
}

body {
    background-color: #020617;
    background-image: radial-gradient(circle at center, #0f172a 0%, #020617 100%);
    background-attachment: scroll;
    font-family: var(--font-body);
    /* Midnight Gold (Premium Dark) */
    color: var(--text-primary);
    line-height: 1.6;
    overflow-x: hidden;
    min-height: 100vh;
    position: relative;
}

/* Platinum Background for Event Portal */
body.event-page {
    background-color: #F1F5F9 !important; /* Prevents black shadow flash when scrolling fast */
    background-image: radial-gradient(circle at center, #F1F5F9 0%, #CBD5E1 100%) !important;
    background-attachment: scroll !important; /* Smooth scroll rendering without heavy repaint lag */
}

/* Background Texture */
body::before {
    content: '';
    position: fixed;
    inset: 0;
    background:
        radial-gradient(circle at 15% 50%, rgba(212, 175, 55, 0.08) 0%, transparent 25%),
        radial-gradient(circle at 85% 30%, rgba(76, 29, 149, 0.1) 0%, transparent 25%);
    z-index: -1;
    pointer-events: none;
}





body.custom-bg-active::before {
    display: none;
}

body.custom-bg-active {
    background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), var(--bg-image);
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-position: center;
}

@media (max-width: 768px) {
    body.custom-bg-active {
        /* Mobile: Use contain/auto to show full image without cropping */
        background-size: 100% auto;
        /* Width 100%, Height Auto */
        background-attachment: scroll;
        /* Fix mobile scrolling issues */
        background-position: top center;
        /* Anchor to top */
        background-repeat: no-repeat;
        /* Ensure background color fills the rest */
        background-color: var(--primary-bg);
    }
}

a {
    text-decoration: none;
    color: inherit;
    transition: var(--transition-fast);
}

ul {
    list-style: none;
}

img {
    max-width: 100%;
    display: block;
}

/* ============================================
   LAYOUT UTILITIES
   ============================================ */
.container {
    width: 100%;
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 12px;
    position: relative;
    z-index: 1;
}

@media (max-width: 600px) {
    .container {
        padding: 0 6px;
    }
}

.hidden {
    display: none !important;
}

.section {
    padding: 80px 0;
}

.flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.text-center {
    text-align: center;
}

.text-gold {
    color: var(--primary);
}

.text-muted {
    color: var(--text-muted);
}

/* ============================================
   COMPONENTS
   ============================================ */

/* ---- Glass Card ---- */
/* ---- Glass Card ---- */
.glass-card {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--glass-shadow);
    padding: 40px;
    position: relative;
    overflow: hidden;
    transition: var(--transition-normal);

    /* Performance Optimizations for Desktop Zoom */
    content-visibility: auto;
    contain-intrinsic-size: 500px;
}

.event-page .glass-card {
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 20px 40px -5px rgba(0, 0, 0, 0.1);
}

/* Optimization for Grid Items (Photos, Events) */
.photo-card,
.event-card,
.photo-item {
    content-visibility: auto;
    contain-intrinsic-size: 200px;
}

.glass-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--glass-highlight), transparent);
}

.glass-card:hover {
    border-color: rgba(234, 179, 8, 0.25);
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(234, 179, 8, 0.1);
    transform: translateY(-3px);
}

/* ---- Buttons ---- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 28px;
    border-radius: 50px;
    font-weight: 500;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: var(--transition-normal);
    position: relative;
    overflow: hidden;
    border: none;
    font-size: 1rem;
}

.btn-primary {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: #000;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(234, 179, 8, 0.3);
    position: relative;
    overflow: hidden;
}

.btn-primary::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.6s ease;
}

.btn-primary:hover::after {
    left: 100%;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(234, 179, 8, 0.45);
}

.btn-outline {
    background: transparent;
    border: 1px solid var(--glass-border);
    color: var(--text-primary);
}

.event-page .btn-outline {
    color: #000000;
    /* Pure Black for Light Mode */
}

.btn-outline:hover {
    border-color: var(--primary);
    color: var(--primary);
    background: rgba(234, 179, 8, 0.05);
}

/* ---- Headers & Type ---- */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading);
    color: var(--text-primary);
    line-height: 1.2;
}

.event-page h1,
.event-page h2,
.event-page h3,
.event-page h4,
.event-page h5,
.event-page h6 {
    color: #000000;
    /* Pure Black for Light Mode */
}

.section-title {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);
    /* Gold Gradient for Dark Mode */
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.event-page .section-title {
    background: linear-gradient(135deg, #1e293b 0%, #475569 100%);
    /* Dark Gradient for Light Mode */
}

.section-subtitle {
    font-size: 1.1rem;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.2em;
    margin-bottom: 1rem;
    display: block;
    font-weight: 600;
}



/* ============================================
   LANDING PAGE SPECIFIC
   ============================================ */

/* Navbar */
.navbar {
    padding: 16px 0;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 200;
    background: rgba(2, 6, 23, 0.85);
    transition: all 0.4s var(--ease-out-expo);
    min-height: 56px;
}

.navbar.scrolled {
    padding: 8px 0;
    background: rgba(2, 6, 23, 0.95);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
}

.nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.nav-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.nav-link {
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 500;
    padding: 8px 16px;
    border-radius: 50px;
    transition: all 0.25s ease;
    cursor: pointer;
}

.nav-link:hover {
    color: var(--primary);
    background: rgba(234, 179, 8, 0.06);
}

.nav-cta {
    border-radius: 50px;
    padding: 10px 24px;
    font-size: 0.9rem;
    margin-left: 8px;
    position: relative;
    overflow: hidden;
}

.nav-cta::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(234, 179, 8, 0.12), transparent);
    transition: left 0.5s ease;
}

.nav-cta:hover::after {
    left: 100%;
}

.logo {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 1.5rem;
    color: #fff;
}

.logo img {
    height: 40px;
    width: auto;
}

/* Scroll Reveal Animation System */
@keyframes revealUp {
    from {
        opacity: 0;
        transform: translateY(32px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.8s var(--ease-out-expo), transform 0.8s var(--ease-out-expo);
}

.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Hero Section */
.hero {
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding-top: 80px;
    /* Offset for navbar */
    position: relative;
    overflow: hidden;
    z-index: 1;
    /* Force stacking context */

    /* New Background with Overlay */
    background-image: linear-gradient(rgba(2, 6, 23, 0.7), rgba(2, 6, 23, 0.7)), url('/static/assets/index/hero_bg.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: scroll;
}

.event-page .hero {
    background-image: linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4)), url('/static/assets/index/hero_bg.webp');
    background-attachment: scroll;
}

@media (max-width: 768px) {
    .hero {
        background-image: linear-gradient(rgba(2, 6, 23, 0.7), rgba(2, 6, 23, 0.7)), url('/static/assets/index/hero_mobile.webp');
        background-attachment: scroll;
        /* Performance & iOS compatibility */
    }
}

/* Vibrant Hero Background Glow */
.hero::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 120vw;
    height: 120vw;
    background:
        radial-gradient(ellipse at 30% 40%, rgba(234, 179, 8, 0.3) 0%, transparent 50%),
        radial-gradient(ellipse at 70% 60%, rgba(76, 29, 149, 0.25) 0%, transparent 50%);
    filter: blur(80px);
    z-index: -1;
    pointer-events: none;
    animation: heroGlow 10s ease-in-out infinite alternate;
    will-change: transform, opacity;
}

@keyframes heroGlow {
    0% {
        opacity: 0.7;
        transform: translate(-50%, -50%) scale(0.9) rotate(0deg);
    }

    50% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.05) rotate(2deg);
    }

    100% {
        opacity: 0.8;
        transform: translate(-50%, -50%) scale(1) rotate(-1deg);
    }
}

.hero-content {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 2;
}

.hero-title {
    font-size: clamp(3rem, 8vw, 5rem);
    font-weight: 700;
    margin-bottom: 24px;
    background: linear-gradient(135deg, #FFF 0%, #d4d4d4 50%, #FFF 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1.1;
    animation: titleShine 6s linear infinite;
}

@keyframes titleShine {
    0% {
        background-position: 0% center;
    }

    100% {
        background-position: 200% center;
    }
}

.hero-title span {
    background: linear-gradient(135deg, var(--primary), #ffffff);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-style: italic;
    display: inline-block;
}

.hero-text {
    font-size: 1.25rem;
    color: var(--text-secondary);
    max-width: 600px;
    margin: 0 auto 40px;
}

/* Features Grid */
.features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    margin-top: 60px;
}

.feature-card {
    padding: 40px;
    text-align: left;
    transition: var(--transition-normal);
}

.feature-icon {
    font-size: 3rem;
    margin-bottom: 24px;
    display: inline-block;
    filter: drop-shadow(0 0 20px rgba(234, 179, 8, 0.2));
}

.feature-card h3 {
    font-size: 1.5rem;
    margin-bottom: 12px;
    color: var(--text-primary);
}

.feature-card p {
    color: var(--text-secondary);
}

/* Steps Section */
.steps-container {
    display: flex;
    flex-direction: column;
    gap: 40px;
    margin-top: 60px;
}

.step-item {
    display: flex;
    align-items: center;
    gap: 30px;
    padding: 30px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: var(--border-radius-lg);
    border: 1px solid rgba(255, 255, 255, 0.15);
    /* Increased border contrast */
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.step-number {
    font-family: var(--font-heading);
    font-size: 4rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.8);
    /* Much brighter (80% opacity) */
    text-shadow: 0 4px 15px rgba(0, 0, 0, 0.8);
    /* Stronger shadow */
    line-height: 1;
}

.step-content h3 {
    font-size: 1.5rem;
    margin-bottom: 8px;
    color: var(--primary);
}

/* Footer */
.footer {
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    padding: 64px 0 32px;
    margin-top: 0;
    text-align: center;
    color: var(--text-muted);
    background: linear-gradient(180deg, transparent 0%, rgba(2, 6, 23, 0.4) 100%);
}

.footer-links {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-bottom: 32px;
}

.footer-links a {
    transition: color 0.25s ease;
}

.footer-links a:hover {
    color: var(--primary);
}

/* ============================================
   EVENT APP SPECIFIC STYLES (Preserved & Modernized)
   ============================================ */

/* Note: These selectors are required by app.js and event.html */

/* Header Override for App */
.header {
    text-align: center;
    padding: 40px 20px;
}

/* Event App Header Elements */
.top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 2rem;
}

.site-logo {
    width: 42px;
    height: 42px;
    object-fit: contain;
}

.brand-name {
    font-family: var(--font-body);
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    flex-grow: 1; /* Pushes the next items to the right */
}

.event-page .brand-name {
    color: #000000;
    /* Pure Black for Light Mode */
}

.client-login-link {
    font-size: 0.85rem;
    color: #111111;
    /* Very Dark Grey */
    border: 1px solid rgba(0, 0, 0, 0.2);
    padding: 8px 16px;
    border-radius: 50px;
    transition: all 0.3s ease;
    font-weight: 500;
    white-space: nowrap;
}

.client-login-link:hover {
    background: #000;
    color: #fff;
    border-color: #000;
}

/* Minimal Guest Profile Redesign */
.guest-profile-container {
    display: flex;
    justify-content: center;
    width: 100%;
}

.minimal-guest-profile {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    padding: 6px 16px 6px 6px;
    border-radius: 50px;
    margin: 20px 0 30px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
}

.min-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fefce8;
    color: #ca8a04;
    border: 1px solid #fef08a;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.min-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-right: 8px;
    text-align: left;
}

.min-greeting {
    font-size: 0.65rem;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 3px;
}

.min-name {
    font-size: 0.95rem;
    color: #1e293b;
    font-weight: 700;
    line-height: 1;
}

@media (max-width: 600px) {
    .minimal-guest-profile {
        margin: 16px 0 24px;
        padding: 4px 14px 4px 4px;
    }
    .min-avatar {
        width: 32px;
        height: 32px;
        font-size: 1rem;
    }
    .min-name {
        font-size: 0.85rem;
    }
}

.header-decoration {
    width: 60px;
    height: 4px;
    background: var(--primary);
    margin: 0 auto 20px;
    border-radius: 2px;
}

.title {
    font-size: 3rem;
    margin-bottom: 10px;
}

.subtitle {
    font-size: 1.2rem;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.15em;
}

.date {
    color: var(--primary);
    font-family: var(--font-body);
    font-size: 1.8rem;
    font-weight: 500;
    font-style: normal;
    margin-bottom: 10px;
}

.thank-you-note {
    margin-top: 30px;
    text-align: center;
    padding: 30px;
}

.signature {
    font-family: var(--font-script);
    font-size: 2rem;
    color: var(--primary);
    margin-top: 10px;
}

/* Upload Section */
.upload-section {
    padding: 10px 0 30px 0; /* Reduced top padding space */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 120px);
    width: 100%;
}

/* Minimal Guest Profile Badge */
.minimal-guest-profile {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 8px 16px 8px 8px;
    background: rgba(234, 179, 8, 0.1);
    border: 1px solid rgba(234, 179, 8, 0.2);
    border-radius: 50px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    transition: all 0.3s ease;
}

.minimal-guest-profile .min-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--primary);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 2px 6px rgba(234, 179, 8, 0.3);
}

.minimal-guest-profile .min-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.minimal-guest-profile .min-greeting {
    font-size: 0.65rem;
    color: #64748b;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1;
    margin-bottom: 2px;
}

.minimal-guest-profile .min-name {
    font-size: 0.95rem;
    color: #1e293b;
    font-weight: 600;
    line-height: 1;
}

.dark-mode .minimal-guest-profile {
    background: rgba(234, 179, 8, 0.15);
    border-color: rgba(234, 179, 8, 0.3);
}

.dark-mode .minimal-guest-profile .min-greeting {
    color: #94a3b8;
}

.dark-mode .minimal-guest-profile .min-name {
    color: #f8fafc;
}

/* Integrated Card Header */
.card-inner-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-bottom: 25px;
    margin-bottom: 30px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.dark-mode .card-inner-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.card-inner-left {
    display: flex;
    align-items: center;
    gap: 15px;
}

.card-inner-logo {
    height: 46px; /* Increased from 38px */
    width: auto;
    object-fit: contain;
}

.card-inner-brand {
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    color: var(--text-dark);
    text-transform: uppercase;
    font-family: var(--font-body);
}

.dark-mode .card-inner-brand {
    color: var(--text-light);
}

.card-inner-right {
    display: flex;
    justify-content: flex-end;
}

.card-inner-signup {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-dark);
    background: transparent;
    text-decoration: none;
    padding: 0.5rem 1.1rem;
    border-radius: 50px;
    border: 1px solid rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.dark-mode .card-inner-signup {
    color: var(--text-light);
    border-color: rgba(255, 255, 255, 0.3);
}

.card-inner-signup:hover {
    background: var(--text-dark);
    color: var(--bg-light);
    border-color: var(--text-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.dark-mode .card-inner-signup:hover {
    background: var(--text-light);
    color: var(--bg-dark);
    border-color: var(--text-light);
    box-shadow: 0 0 15px rgba(255, 255, 255, 0.2);
    transform: translateY(-2px);
}

@media (max-width: 576px) {
    .card-inner-header {
        flex-wrap: wrap;
        gap: 15px;
        padding-bottom: 20px;
        margin-bottom: 20px;
    }
    
    .card-inner-brand {
        letter-spacing: 0.1em;
        font-size: 0.95rem;
    }

    .card-inner-signup {
        font-size: 0.75rem;
        padding: 0.4rem 0.8rem;
    }
    
    .card-inner-logo {
        height: 36px;
    }
}

@media (max-width: 480px) {
    .card-inner-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }
    
    .card-inner-right {
        width: 100%;
        justify-content: flex-start;
    }
}

.upload-card {
    width: 100%;
    max-width: 500px;
    text-align: center;
    /* Override glass-card content-visibility to prevent height miscalculation */
    content-visibility: visible;
    contain-intrinsic-size: auto;
}

/* Celebration Animation Styles */
.celebration-animation-container {
    width: 100%;
    max-width: 450px;
    margin: 0 auto 20px auto;
    display: flex;
    justify-content: center;
    position: relative;
    overflow: hidden;
    filter: drop-shadow(0 25px 40px rgba(0,0,0,0.14)) drop-shadow(0 10px 15px rgba(0,0,0,0.1));
    animation: floatFrame 6s ease-in-out infinite;
}

@keyframes floatFrame {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-15px); }
    100% { transform: translateY(0px); }
}

.celebration-animation, .storyset-animation {
    width: 100%;
    height: auto;
    border-radius: 20px;
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.upload-animation-side:hover .celebration-animation,
.upload-animation-side:hover .storyset-animation {
    transform: scale(1.05) rotate(2deg);
}

.upload-animation-side:hover .celebration-animation-container {
    filter: drop-shadow(0 35px 50px rgba(0,0,0,0.22)) drop-shadow(0 15px 25px rgba(0,0,0,0.14));
}

.no-results .celebration-animation-container {
    max-width: 350px;
}

/* Landscape Layout for Upload Card */
.upload-landscape-wrapper {
    display: flex;
    flex-direction: column; /* Mobile default */
    gap: 30px;
    align-items: center;
    width: 100%;
}

.upload-animation-side {
    width: 100%;
    display: flex;
    justify-content: center;
    position: relative;
}

.upload-animation-side::before {
    content: '';
    position: absolute;
    width: 120%;
    height: 120%;
    background: radial-gradient(circle, rgba(234, 179, 8, 0.15) 0%, transparent 70%);
    z-index: -1;
    animation: breathe 8s ease-in-out infinite alternate;
}

.upload-animation-side::after {
    content: '';
    position: absolute;
    width: 80%;
    height: 80%;
    background: radial-gradient(circle, rgba(76, 29, 149, 0.08) 0%, transparent 70%);
    z-index: -1;
    top: 10%;
    right: -10%;
    animation: breathe 6s ease-in-out infinite alternate-reverse;
}

@keyframes breathe {
    0% { transform: scale(0.9); opacity: 0.6; }
    100% { transform: scale(1.1); opacity: 1; }
}

.upload-content-side {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.selfie-anim-container {
    max-width: 450px;
    position: relative;
    z-index: 1;
}

/* Desktop Landscape Overrides */
    
/* Integrated Card Header */
.card-inner-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-bottom: 25px;
    margin-bottom: 30px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.dark-mode .card-inner-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.card-inner-left {
    display: flex;
    align-items: center;
    gap: 15px;
}

.card-inner-logo {
    height: 42px; /* Uniform height for logo across desktop */
    width: auto;
}

/* Premium Header Event Info Card */
.header-event-info-card {
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 24px;
    padding: 20px 25px;
    margin-bottom: 35px;
    text-align: center;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
}

.dark-mode .header-event-info-card {
    background: rgba(30, 41, 59, 0.85);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.event-title-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 8px;
}

.event-title-badge i {
    font-size: 1.4rem;
    color: var(--primary);
}

.header-event-title {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--text-dark);
}

.dark-mode .header-event-title {
    color: var(--text-light);
}

.header-event-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 0.85rem;
    color: var(--text-muted);
    font-weight: 500;
}

.meta-divider {
    opacity: 0.4;
}

.header-event-location {
    font-style: italic;
}

@media (max-width: 1023px) {
    .card-one-header, .card-inner-header {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding: 12px 15px !important;
        gap: 15px !important;
    }

    .card-inner-brand {
        display: none !important; /* Hide 'PHOTOMATCH' branding text */
    }

    .header-event-info-card {
        background: #ffffff !important; /* Force solid white background */
        border: 1px solid rgba(234, 179, 8, 0.3) !important;
        border-radius: 20px !important;
        padding: 15px !important;
        margin: 15px 10px 30px !important;
        box-shadow: 0 10px 30px rgba(0,0,0,0.08) !important;
        text-align: center !important;
        width: calc(100% - 20px) !important;
    }

    .header-event-title {
        font-size: 1.1rem !important;
        display: block !important;
        margin-bottom: 5px !important;
    }

    .header-event-meta {
        font-size: 0.7rem !important;
        display: flex !important;
        justify-content: center !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
    }

    .card-inner-logo {
        height: 34px !important;
    }

    .card-inner-signup {
        padding: 0.5rem 1rem !important;
        font-size: 0.8rem !important;
    }

    /* Mobile-Friendly Upload Layout */
    .upload-landscape-wrapper {
        flex-direction: column !important;
        gap: 20px !important;
    }

    .upload-content-side {
        width: 100% !important;
        align-items: center !important;
        text-align: center !important;
    }
}

.card-inner-right {
    display: flex;
    justify-content: flex-end;
}

.card-inner-signup {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-dark);
    background: transparent;
    text-decoration: none;
    padding: 0.6rem 1.4rem;
    border-radius: 50px;
    border: 1px solid rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.signup-desktop {
    display: inline-flex !important;
}

.signup-mobile {
    display: none !important;
}

@media (max-width: 1023px) {
    .signup-desktop {
        display: none !important;
    }
    .signup-mobile {
        display: inline-flex !important;
    }
}

.dark-mode .card-inner-signup {
    color: var(--text-light);
    border-color: rgba(255, 255, 255, 0.3);
}

.card-inner-signup:hover {
    background: var(--text-dark);
    color: var(--bg-light);
    border-color: var(--text-dark);
}

.dark-mode .card-inner-signup:hover {
    background: var(--text-light);
    color: var(--bg-dark);
    border-color: var(--text-light);
}

@media (min-width: 1024px) {
    .upload-card {
        max-width: 600px !important; /* Centered narrow card for redesigned UI */
        padding: 50px !important;
        background: rgba(255, 255, 255, 0.95) !important;
        box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.5) inset !important;
        border-radius: 32px;
        position: relative;
        overflow: visible !important;
        margin: 0 auto;
    }

    .upload-card::before {
        content: '';
        position: absolute;
        top: -2px; left: -2px; right: -2px; bottom: -2px;
        background: linear-gradient(135deg, rgba(234, 179, 8, 0.4) 0%, rgba(255,255,255,0) 50%, rgba(234, 179, 8, 0.1) 100%);
        z-index: -1;
        border-radius: 34px;
        pointer-events: none;
    }

    .upload-landscape-wrapper {
        display: flex !important;
        flex-direction: column !important;
        gap: 30px;
        align-items: center;
        justify-content: center;
    }

    .upload-animation-side {
        width: 100%;
        display: flex;
        justify-content: center;
    }

    .upload-content-side {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .selfie-anim-container {
        max-width: 550px;
        margin: 0;
    }

    .upload-landscape-wrapper .event-hero-banner {
        align-items: center !important;
        text-align: center !important;
    }

    .upload-landscape-wrapper .verification-card {
        text-align: left !important;
        padding: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        border: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    .upload-landscape-wrapper .verification-text {
        font-size: 1.1rem;
        margin-bottom: 24px;
    }
}

/* Introductory Text Styles */
.event-intro-text {
    margin-bottom: 25px;
    width: 100%;
    max-width: 460px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: radial-gradient(circle at 10% 10%, rgba(249, 168, 212, 0.18) 0%, transparent 50%),
                radial-gradient(circle at 90% 90%, rgba(147, 197, 253, 0.18) 0%, transparent 50%),
                linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(241, 245, 249, 0.96));
    border-radius: 24px;
    padding: 22px 30px;
    border: 1.5px solid rgba(255, 255, 255, 0.9);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.03), inset 0 1px 0 rgba(255, 255, 255, 0.7);
    text-align: center;
}

.intro-headline {
    color: var(--primary);
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
    font-family: var(--font-body);
}

.intro-description {
    color: var(--text-dark);
    opacity: 0.8;
    font-size: 1.05rem;
    line-height: 1.6;
    margin: 0;
}

/* --- Mockup Design Event Summary (REMOVED: Moved theme to global header) --- */


.event-details-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
    margin-bottom: 24px;
    text-align: left;
    width: 100%;
}

.event-detail-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    color: #1e293b;
    font-weight: 600;
    font-size: 0.95rem;
}

.event-title-row {
    margin-bottom: 20px;
    border-bottom: 1px solid rgba(0,0,0,0.06);
    padding-bottom: 16px;
}

.summary-title-text {
    font-family: var(--font-heading);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--primary);
}

.event-detail-row:last-child {
    margin-bottom: 0;
}

.event-detail-row i.text-gold {
    color: #CCA876;
    font-size: 1.4rem;
}

.guest-divider {
    display: flex;
    align-items: center;
    text-align: center;
    margin: 24px 0 16px 0;
}

.guest-divider::before,
.guest-divider::after {
    content: '';
    flex: 1;
    border-bottom: 1px solid #f1f5f9;
}

.guest-divider span {
    padding: 0 16px;
    color: #94a3b8;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.guest-profile-card {
    background: #FFFBF5;
    border: 1px solid #fdf4e3;
    border-radius: 14px;
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 16px;
    box-shadow: 0 4px 15px rgba(204, 168, 118, 0.05), inset 0 0 0 1px #fff;
}

.guest-avatar-box {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    border: 2px dashed #CCA876;
    padding: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    flex-shrink: 0;
}

.guest-avatar-box svg {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: #f1f5f9;
    color: #94a3b8;
    object-fit: cover;
    padding: 4px;
}

.guest-info-box {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.guest-info-box strong {
    font-size: 1.05rem;
    color: #0f172a;
    font-weight: 600;
    margin-bottom: 6px;
}

.guest-badge {
    display: flex;
    align-items: center;
    gap: 6px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 0.75rem;
    color: #64748b;
    font-weight: 600;
}

.gold-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #CCA876;
}

.upload-headline {
    margin-bottom: 28px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.upload-headline h2 {
    font-size: 2rem !important;
    margin-bottom: 8px !important;
    text-align: center;
}
.upload-headline .upload-description {
    margin-bottom: 0;
    text-align: center;
}

/* Lottie wrapper inside upload headline */
.upload-lottie-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 16px;
}


/* Modern Typography for Upload Card */
.upload-card h2 {
    font-family: 'Inter', sans-serif;
    /* Geometric Modern Font */
    font-size: 2.2rem;
    font-weight: 800;
    /* Extra Bold */
    margin-bottom: 0.5rem;

    /* Metallic Gradient Text */
    background: linear-gradient(135deg, #1e293b 0%, #475569 50%, #1e293b 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;

    letter-spacing: -0.03em;
    /* Tight tracking for modern feel */
    text-transform: none;
}

/* Subtitle Refinement */
.upload-description {
    font-family: 'Inter', sans-serif;
    color: #1e293b;
    /* More solid dark color */
    font-size: 1.1rem;
    /* Slightly larger */
    font-weight: 500;
    margin-bottom: 30px;
    line-height: 1.5;
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
}

.upload-icon {
    width: 140px;
    /* Increased size */
    height: 140px;
    /* Increased size */
    margin: 0 auto 30px;
    background: #ffffff;
    /* White background as requested */
    border: 4px solid rgba(255, 255, 255, 0.2);
    /* Subtle glass border */
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 40px rgba(255, 255, 255, 0.2);
    /* Soft white glow */
    color: #000;
    /* Removed pulse-icon animation to let Lottie shine */
}

.upload-icon svg {
    width: 60px;
    height: 60px;
}

@keyframes pulse-icon {
    0% {
        transform: scale(1);
        box-shadow: 0 0 30px rgba(234, 179, 8, 0.4);
    }

    50% {
        transform: scale(1.05);
        box-shadow: 0 0 50px rgba(234, 179, 8, 0.6);
    }

    100% {
        transform: scale(1);
        box-shadow: 0 0 30px rgba(234, 179, 8, 0.4);
    }
}

/* Upload Buttons */
.upload-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 28px;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: var(--transition-normal);
    border: none;
    color: white;
}

.upload-btn.primary {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    box-shadow: 0 4px 15px rgba(234, 179, 8, 0.3);
}

.upload-btn svg {
    width: 20px;
    height: 20px;
}

/* Camera View */
.camera-view {
    width: 100%;
    max-width: 320px;
    margin: 0 auto;
    text-align: center;
}

.camera-hint {
    color: #1e293b;
    /* High contrast */
    font-weight: 600;
    font-size: 1.1rem;
    margin-top: 15px;
}

.video-container {
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid var(--primary);
    box-shadow: 0 0 30px rgba(234, 179, 8, 0.2);
    margin: 0 auto 20px;
    width: 240px !important;
    height: 240px !important;
    position: relative;
    background: #000;

    /* GPU Acceleration for smoother video rendering */
    transform: translateZ(0);
    will-change: transform;
}

#camera-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scaleX(-1);
    /* Mirror */
}

/* Blinking Indicator */
.blink-indicator {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #4ade80;
    font-weight: 600;
    margin-top: 10px;
}

.blink-dot {
    width: 10px;
    height: 10px;
    background: #4ade80;
    border-radius: 50%;
    box-shadow: 0 0 10px #4ade80;
}

/* Permission Denied */
.permission-denied {
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.3);
    border-radius: var(--border-radius-md);
    padding: 20px;
    margin-bottom: 20px;
    text-align: center;
}

.permission-denied h3 {
    color: #fca5a5;
    margin-bottom: 10px;
}

.permission-denied p {
    font-size: 0.9rem;
    margin-bottom: 10px;
}

/* Desktop Notice */
.desktop-notice {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--primary);
    border-radius: var(--border-radius-md);
    padding: 30px;
    text-align: center;
}

.desktop-notice-icon svg {
    width: 64px;
    height: 64px;
    color: var(--primary);
    margin-bottom: 20px;
}

.desktop-notice code {
    display: block;
    background: rgba(0, 0, 0, 0.3);
    padding: 10px;
    border-radius: 6px;
    font-family: monospace;
    color: var(--primary);
    margin-top: 10px;
    word-break: break-all;
}

/* Preview Section */
.preview-section {
    text-align: center;
    animation: fadeIn 0.5s ease;
}

#preview-image {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    border: 4px solid var(--primary);
    object-fit: cover;
    display: block;
    margin: 0 auto 20px auto;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}



/* Camera Buttons */
.cancel-camera-btn {
    background: transparent;
    border: 1px solid var(--glass-border);
    color: var(--text-secondary);
    padding: 10px 24px;
    border-radius: 50px;
    margin-top: 20px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: var(--transition-fast);
}

.cancel-camera-btn:hover {
    background: rgba(0, 0, 0, 0.05);
    border-color: var(--text-muted);
}

.retake-btn,
.submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 24px;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: var(--transition-normal);
    border: none;
}

.retake-btn {
    background: transparent;
    border: 1px solid var(--glass-border);
    color: var(--text-primary);
}

.retake-btn:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.retake-btn svg,
.submit-btn svg {
    width: 20px;
    height: 20px;
}

.submit-btn {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: #000;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(234, 179, 8, 0.3);
}

.submit-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(234, 179, 8, 0.4);
}

/* Results Footer */
.results-footer {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-top: 40px;
    margin-bottom: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--glass-border);
}

.results-header {
    margin-bottom: 20px;
    /* Reduced from default if it was larger */
}


/* Security Reference Section */
.security-reference-section {
    width: 100%;
    margin-top: 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.security-reference-hint {
    color: #94a3b8;
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 16px;
    text-align: center;
}

/* Security Badges - Clean Pill Redesign */
.security-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-bottom: 24px;
    width: 100%;
}

.security-badge-item {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    padding: 8px 16px;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: 500;
    color: #475569;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
    cursor: default;
}

.badge-icon {
    font-size: 1rem;
    color: #64748b;
    display: flex;
    align-items: center;
}

.notify-me-btn-results {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 9px 20px;
    border-radius: 50px;
    border: 1.5px solid #e2e8f0;
    background: #ffffff;
    color: #475569;
    font-size: 0.85rem;
    font-weight: 500;
    font-family: var(--font-body);
    cursor: pointer;
    margin-top: 10px;
    letter-spacing: 0.01em;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    transition: border-color 0.2s ease, background 0.2s ease,
                color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.notify-me-btn-results svg {
    color: #eab308;
    flex-shrink: 0;
    transition: color 0.2s ease;
}

.notify-me-btn-results:hover {
    border-color: #eab308;
    background: #eab308;
    color: #000000;
    box-shadow: 0 4px 14px rgba(234, 179, 8, 0.28);
    transform: translateY(-1px);
}

.notify-me-btn-results:hover svg {
    color: #000000;
}

.notify-me-btn-results:active {
    transform: translateY(0);
    box-shadow: 0 1px 4px rgba(234, 179, 8, 0.2);
}

/* Security Details Accordion */
.security-details-container {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
}

.security-toggle-btn {
    width: 100%;
    background: transparent;
    border: none;
    color: #64748b;
    font-size: 0.85rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px;
    cursor: pointer;
    transition: color 0.3s ease;
}

.security-toggle-btn:hover {
    color: var(--primary);
}

.chevron-icon {
    width: 16px;
    height: 16px;
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.security-details-container.open .chevron-icon {
    transform: rotate(180deg);
}

.security-content-wrapper {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.security-details-container.open .security-content-wrapper {
    max-height: 500px;
}

.security-content {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 24px;
    margin-top: 10px;
    text-align: left;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.02);
}

.security-item {
    display: flex;
    gap: 16px;
    margin-bottom: 24px;
}

.security-item:last-child {
    margin-bottom: 0;
}

.item-icon {
    font-size: 1.4rem;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    background: #fefce8;
    color: #1e293b;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #fde047;
}

.item-text strong {
    display: block;
    color: #d19f36; /* Soft natural gold/yellow from screenshot */
    font-size: 1.05rem;
    font-weight: 600;
    margin-bottom: 6px;
}

.item-text p {
    font-size: 0.9rem;
    color: #475569;
    line-height: 1.5;
    margin: 0;
}

/* Loading */
.loading-section {
    padding: 60px 0;
    display: flex;
    justify-content: center;
}

.loading-spinner {
    width: 80px;
    height: 80px;
    border: 4px solid var(--glass-border);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 24px;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* Results */
.results-header {
    text-align: center;
    margin-bottom: 40px;
}

.results-count {
    color: var(--text-secondary);
    margin-top: 8px;
}

.action-buttons {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 20px;
    flex-wrap: wrap;
}

.try-again-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--glass-border);
    padding: 20px;
    border-radius: var(--border-radius-md);
    color: var(--text-primary);
    width: 100%;
    max-width: 200px;
    margin: 20px auto;
    cursor: pointer;
    transition: var(--transition-normal);
}

.try-again-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: var(--primary);
    transform: translateY(-2px);
}

.try-again-btn svg {
    width: 32px;
    height: 32px;
    color: var(--primary);
}

.action-btn {
    padding: 10px 20px;
    border-radius: 50px;
    border: 1px solid var(--glass-border);
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
    font-size: 0.9rem;
    transition: var(--transition-fast);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.action-btn:hover {
    border-color: var(--primary);
    background: rgba(234, 179, 8, 0.1);
}

.action-btn.primary {
    background: var(--primary);
    color: #000;
    border-color: var(--primary);
}

.results-section {
    border-radius: 28px;
    padding: 35px 8px;
    margin-top: 30px;
    margin-bottom: 50px;
}

@media (max-width: 600px) {
    .results-section {
        padding: 20px 4px;
        margin-top: 20px;
        margin-bottom: 30px;
        border-radius: 20px;
    }
}

/* Photo Gallery Grid — Premium Masonry (matches master_gallery) */
.photo-gallery {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    grid-auto-rows: 10px !important;
    gap: 8px !important;
    width: 100% !important;
}

@media (max-width: 1024px) {
    .photo-gallery {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 6px !important;
    }
}

@media (max-width: 600px) {
    .photo-gallery {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 4px !important;
    }
}

/* Photo card — masonry-aware */
.photo-card {
    break-inside: avoid !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    position: relative !important;
    cursor: pointer !important;
    background: var(--dominant-color, var(--surface-bg, #f0ede8)) !important;
    border: none !important;
    box-shadow: none !important;
    transition: transform 0.75s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.75s cubic-bezier(0.16, 1, 0.3, 1) !important;
    will-change: transform !important;
    width: 100% !important;
    height: 100% !important;
}

.photo-card.ph-card-hidden {
    display: none !important;
}


.photo-card.landscape {
    aspect-ratio: 3 / 2 !important;
}

.photo-card.portrait {
    aspect-ratio: 2 / 3 !important;
}

/* Loading placeholder uses dominant color */
.photo-card.loading {
    background: var(--dominant-color, #f0ede8) !important;
    filter: saturate(1.4) contrast(1.15) brightness(0.92) !important;
}

.photo-card:hover {
    transform: translateY(-4px) scale(1.02) !important;
    box-shadow: 0 20px 40px -10px rgba(0,0,0,0.15) !important;
    z-index: 10 !important;
}

.photo-card img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
    opacity: 0;
    transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1), transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform;
}

.photo-card img.loaded {
    opacity: 1;
}

.photo-card:hover img.loaded {
    transform: scale(1.06) !important;
}

/* Processing shimmer placeholder */
.photo-processing-placeholder {
    display: none !important;
    position: absolute !important;
    inset: 0 !important;
    background-color: var(--dominant-color, #f0ede8) !important;
    background-image: linear-gradient(110deg, rgba(255,255,255,0) 8%, rgba(255,255,255,0.18) 18%, rgba(255,255,255,0) 33%) !important;
    background-size: 200% 100% !important;
    animation: premiumShimmer 1.5s linear infinite !important;
    z-index: 1 !important;
    pointer-events: none !important;
}

.photo-processing-placeholder.active {
    display: block !important;
}

@keyframes premiumShimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Hover overlay */
.photo-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(to top, rgba(20,18,16,.8) 0%, transparent 60%) !important;
    opacity: 0 !important;
    transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1) !important;
    display: flex !important;
    align-items: flex-end !important;
    padding: 14px !important;
    z-index: 2 !important;
}

.photo-card:hover .photo-overlay {
    opacity: 1 !important;
}

.photo-overlay-info {
    transform: translateY(6px) !important;
    transition: transform 0.75s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.photo-card:hover .photo-overlay-info {
    transform: translateY(0) !important;
}

.photo-overlay-title {
    font-family: 'Inter', sans-serif !important;
    font-size: .78rem !important;
    font-weight: 600 !important;
    color: #fff !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 180px !important;
    margin: 0 !important;
}

.photo-overlay-hint {
    font-family: 'Inter', sans-serif !important;
    font-size: .65rem !important;
    color: rgba(255,255,255,.7) !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    margin: 3px 0 0 !important;
}

/* Favorite button */
.photo-card .favorite-btn {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    border: 1px solid rgba(0,0,0,0.12) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 8 !important;
    pointer-events: auto !important;
    opacity: 0 !important;
    transform: scale(0.85) !important;
    transition: opacity .25s ease, transform .25s ease !important;
}

.photo-card:hover .favorite-btn,
.photo-card .favorite-btn.active {
    opacity: 1 !important;
    transform: scale(1) !important;
}

@media (max-width: 768px) {
    .photo-card .favorite-btn {
        opacity: 1 !important;
        transform: scale(1) !important;
    }
}

.photo-card .favorite-btn svg {
    width: 14px !important;
    height: 14px !important;
    fill: none !important;
    stroke: #64748b !important;
    stroke-width: 2 !important;
}

.photo-card .favorite-btn:hover svg {
    stroke: #F43F5E !important;
}

.photo-card .favorite-btn.active {
    background: #FFF1F2 !important;
    border-color: #F43F5E !important;
}

.photo-card .favorite-btn.active svg {
    stroke: #F43F5E !important;
    fill: #F43F5E !important;
}

/* Checkbox overlay */
.photo-card .checkbox-overlay {
    position: absolute !important;
    bottom: 10px !important;
    right: 10px !important;
    z-index: 8 !important;
    opacity: 0 !important;
    transition: opacity .2s !important;
    pointer-events: auto !important;
}

.photo-card:hover .checkbox-overlay,
.photo-card.selected .checkbox-overlay {
    opacity: 1 !important;
}

@media (max-width: 768px) {
    .photo-card .checkbox-overlay {
        opacity: 1 !important;
    }
}

.photo-card .custom-checkbox-container {
    display: block !important;
    cursor: pointer !important;
}

.photo-card .custom-checkbox-container input {
    display: none !important;
}

.photo-card .checkmark {
    width: 24px !important;
    height: 24px !important;
    border-radius: 50% !important;
    border: 2px solid rgba(255,255,255,0.9) !important;
    background: rgba(20,18,16,0.85) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all .2s !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
}

.photo-card .custom-checkbox-container input:checked ~ .checkmark {
    background: var(--primary, #eab308) !important;
    border-color: var(--primary, #eab308) !important;
}

.photo-card .checkmark svg {
    width: 12px !important;
    height: 12px !important;
    color: #fff !important;
    display: none !important;
}

.photo-card .custom-checkbox-container input:checked ~ .checkmark svg {
    display: block !important;
}

/* Selected state */
.photo-card.selected {
    box-shadow: 0 0 0 2px var(--primary, #eab308), 0 8px 20px rgba(0,0,0,0.15) !important;
}

/* Status indicators */
.photo-card.status-viewed {
    box-shadow: 0 0 0 3px #4ade80 !important;
}

.photo-card.status-downloaded {
    box-shadow: 0 0 0 3px #f87171 !important;
}

.status-legend {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 20px;
    font-size: 0.85rem;
    color: var(--text-muted);
}

.legend-box {
    width: 12px;
    height: 12px;
    border-radius: 2px;
    display: inline-block;
    margin-right: 6px;
}

.legend-box.viewed {
    background: #4ade80;
}

.legend-box.downloaded {
    background: #f87171;
}



/* Notify Modal - Premium Redesign */
.modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.88);
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fadeIn 0.3s ease;
}

.modal-container {
    background: rgba(15, 23, 42, 0.95);
    /* Darker glass base */
    padding: 0;
    /* Reset */
    border-radius: 24px;
    border: 1px solid rgba(234, 179, 8, 0.2);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
    max-width: 420px;
    width: 90%;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.modal-content {
    padding: 40px;
}

.modal-header {
    margin-bottom: 30px;
}

.modal-icon-glow {
    width: 60px;
    height: 60px;
    background: radial-gradient(circle, rgba(212, 175, 55, 0.18) 0%, transparent 70%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    font-size: 2rem;
    color: #D4AF37;
    animation: pulse-gold 2s infinite;
}

.modal h2 {
    font-size: 1.8rem;
    margin-bottom: 8px;
    color: #1e293b;
    font-weight: 700;
}

.modal-subtitle {
    color: #475569;
    font-size: 0.95rem;
    line-height: 1.5;
    opacity: 1;
}

/* Floating Label Input */
.input-group {
    position: relative;
    margin-bottom: 24px;
    text-align: left;
}

.modal-input {
    width: 100%;
    padding: 16px 16px 16px 45px;
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 12px;
    color: #1e293b;
    font-size: 1rem;
    outline: none;
    transition: all 0.3s ease;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.02);
}

.modal-input:focus {
    background: #ffffff;
    border-color: #EAB308;
    box-shadow: 0 0 0 4px rgba(234, 179, 8, 0.15);
}

.modal-input:placeholder-shown+label {
    top: 16px;
    left: 45px;
    color: #64748b;
    font-size: 1rem;
}

.modal-input:focus+label,
.modal-input:not(:placeholder-shown)+label {
    top: -10px;
    left: 10px;
    font-size: 0.75rem;
    color: #b45309;
    background: #ffffff;
    padding: 0 8px;
    border-radius: 4px;
    z-index: 2;
    border: 1px solid rgba(0,0,0,0.05); /* Added slight border to label so it pops clearly over the input */
}

.modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 36px;
    height: 36px;
    background: rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 50%;
    color: #475569;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 10;
}

.modal-close:hover {
    background: rgba(0, 0, 0, 0.1);
    color: #1e293b;
    transform: rotate(90deg);
    border-color: rgba(0, 0, 0, 0.2);
}

.input-group label {
    position: absolute;
    left: 45px;
    top: 16px;
    transition: all 0.2s ease;
    pointer-events: none;
    color: var(--text-muted);
}

.input-icon {
    position: absolute;
    left: 16px;
    top: 16px;
    font-size: 1.1rem;
    color: #D4AF37;
    opacity: 1;
}

/* Modal Action Button */
.modal-action-btn {
    width: 100%;
    padding: 16px;
    font-size: 1.1rem;
    border-radius: 12px;
    position: relative;
    overflow: hidden;
}

/* Gold override — only for the notify modal button */
#notify-modal .btn-primary {
    background: linear-gradient(135deg, #D4AF37 0%, #b8962e 100%);
    color: #1a1200;
    box-shadow: 0 4px 20px rgba(212, 175, 55, 0.35);
}

#notify-modal .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(212, 175, 55, 0.5);
}

.btn-shine {
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.4), transparent);
    transform: skewX(-20deg);
    animation: shine 3s infinite;
}

@keyframes shine {
    0% {
        left: -100%;
    }

    20% {
        left: 200%;
    }

    100% {
        left: 200%;
    }
}

@keyframes pulse-gold {
    0%   { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.45); }
    70%  { box-shadow: 0 0 0 10px transparent; }
    100% { box-shadow: 0 0 0 0 transparent; }
}

.scale-in {
    animation: scaleIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes scaleIn {
    from {
        transform: scale(0.9);
        opacity: 0;
    }

    to {
        transform: scale(1);
        opacity: 1;
    }
}

/* Notify Success State */
.notify-success {
    padding: 20px 0;
    animation: fadeIn 0.5s ease-out;
}

.success-ring {
    width: 80px;
    height: 80px;
    background: radial-gradient(circle, rgba(212, 175, 55, 0.15) 0%, transparent 70%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    border: 2px solid #D4AF37;
    box-shadow: 0 0 20px rgba(212, 175, 55, 0.28);
}

.success-icon-large {
    font-size: 2.5rem;
    color: #D4AF37;
}

.notify-success h3 {
    color: #fff;
    font-size: 1.5rem;
    margin-bottom: 12px;
}

.notify-success p {
    color: #cbd5e1;
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 20px;
}

.notify-success strong {
    color: #D4AF37;
}

.spam-notice {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.05);
    padding: 10px 18px;
    border-radius: 12px;
    font-size: 0.85rem;
    color: #94a3b8;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.spam-notice i {
    color: var(--primary);
    font-size: 1rem;
}

.spam-notice strong {
    color: #cbd5e1;
}

.hidden {
    display: none !important;
}

/* Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes pulse {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.05);
    }

    100% {
        transform: scale(1);
    }
}

/* Helper for No Results */
.no-results {
    text-align: center;
    padding: 40px;
}

.no-results-icon {
    font-size: 3rem;
    margin-bottom: 20px;
    opacity: 0.7;
    color: var(--text-muted);
}

.no-results-icon svg {
    width: 64px;
    height: 64px;
}

.notify-me-trigger-btn {
    margin-top: 20px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid var(--primary);
    padding: 10px 20px;
    border-radius: 20px;
    color: var(--primary);
    cursor: pointer;
}

.preview-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

/* LightGallery Toolbar Cleanup */
.lg-toolbar .lg-zoom-in,
.lg-toolbar .lg-zoom-out,
.lg-toolbar .lg-actual-size,
.lg-toolbar .lg-thumb-toggle,
.lg-toolbar .lg-download {
    display: none !important;
}

/* Custom Themed Download Button */
.lg-toolbar #lg-custom-download {
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: rgba(234, 179, 8, 0.15);
    /* Gold tint background */
    border: 1px solid var(--primary);
    border-radius: 8px;
    color: var(--primary);
    margin: 5px 15px 5px auto;
    /* Push to right if flex, or just spacing */
    padding: 0 8px;
    height: 36px;
    width: 44px !important;
    /* Specific width */
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    cursor: pointer;
}

.lg-toolbar #lg-custom-download:hover {
    background: var(--primary);
    color: #0f172a;
    /* Dark text on gold */
    box-shadow: 0 0 15px rgba(234, 179, 8, 0.5);
    transform: translateY(-1px);
}

.lg-toolbar #lg-custom-download svg {
    width: 22px;
    height: 22px;
    filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.2));
}

/* Footer Styling */
.site-footer {
    text-align: center;
    padding: 40px 20px;
    color: var(--text-muted);
    font-size: 0.9rem;
    border-top: 1px solid var(--glass-border);
    margin-top: auto;
    width: 100%;
}

.event-page .site-footer {
    color: #000000;
    /* Pure Black for Light Mode */
}

/* Responsive */
@media (max-width: 768px) {
    .title {
        font-size: 2rem;
    }

    .hero-title {
        font-size: 3rem;
    }

    .photo-gallery {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .nav-arrow {
        display: none;
    }

    /* Use swipe on mobile */
    .step-item {
        flex-direction: column;
        text-align: center;
    }

    /* Security Badges Fix for Mobile */
    .security-badges {
        gap: 8px;
        /* Tighter gap */
    }

    .security-badge-item {
        padding: 6px 12px;
        font-size: 0.75rem;
        /* Smaller text */
    }
}


/* Disabled Button State */
.submit-btn.disabled,
.action-btn.disabled,
.upload-btn.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
    filter: grayscale(0.5);
}

/* ============================================
   CUSTOM CHECKBOX REDESIGN & PERFORMANCE
   ============================================ */

/* Checkbox Container Position */
.checkbox-overlay {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 10;
    opacity: 0.8;
    transition: opacity 0.2s ease;
}

.photo-card:hover .checkbox-overlay,
.photo-card.selected .checkbox-overlay {
    opacity: 1;
}

/* Hide Default Checkbox */
.custom-checkbox-container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* The Custom Checkbox */
.custom-checkbox-container {
    display: block;
    position: relative;
    cursor: pointer;
    user-select: none;
}

.checkmark {
    position: relative;
    height: 28px;
    width: 28px;
    background-color: rgba(255, 255, 255, 0.28);
    border: 2px solid rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    /* Circular */
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    display: flex;
    /* Centering the icon */
    align-items: center;
    justify-content: center;
}

/* Hover Effect */
.custom-checkbox-container:hover .checkmark {
    background-color: rgba(255, 255, 255, 0.3);
    border-color: #fff;
    transform: scale(1.05);
}

/* Checked State - Outer Circle */
.custom-checkbox-container input:checked~.checkmark {
    background-color: var(--primary);
    /* Gold */
    border-color: var(--primary);
    box-shadow: 0 0 15px rgba(234, 179, 8, 0.6);
    /* Gold Glow */
    transform: scale(1.1);
}

/* Checkmark Icon inside */
.checkmark svg {
    width: 16px;
    height: 16px;
    color: #0f172a;
    /* Dark text/icon on gold background for contrast */
    opacity: 0;
    transform: scale(0.5);
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Show Checkmark when Checked */
.custom-checkbox-container input:checked~.checkmark svg {
    opacity: 1;
    transform: scale(1);
}

/* ============================================
   LIGHTGALLERY MOBILE FIXES
   ============================================ */

/* Global Z-index fixes (Required for proper stacking) */
.lg-backdrop {
    z-index: 9999 !important;
}

.lg-outer {
    z-index: 10000 !important;
}

/* Force show close button logic */
.lg-outer.lg-visible .lg-close {
    display: block !important;
    opacity: 1 !important;
}

/* Fix for iOS Safari */
@supports (-webkit-touch-callout: none) {
    .lg-outer .lg-close {
        -webkit-tap-highlight-color: rgba(234, 179, 8, 0.3);
    }
}

/* MOBILE ONLY STYLES */
@media (max-width: 768px) {

    /* Ensure toolbar is visible on mobile */
    .lg-toolbar {
        z-index: 99999 !important;
        opacity: 1 !important;
        visibility: visible !important;
        padding: 10px !important;
    }

    /* Ensure close button is visible and touch-friendly on mobile */
    .lg-outer .lg-close {
        width: 50px !important;
        height: 50px !important;
        display: block !important;
        /* Using SVG background for perfect centering */
        background: rgba(0, 0, 0, 0.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E") center no-repeat !important;
        background-size: 24px !important;
        border-radius: 50% !important;
        border: 2px solid rgba(255, 255, 255, 0.3) !important;
        opacity: 1 !important;
        visibility: visible !important;
        z-index: 999999 !important;
        right: 15px !important;
        top: 15px !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    /* Hide any internal icons/svgs */
    .lg-outer .lg-close>* {
        display: none !important;
    }

    /* Disable the text-based icon since we use background SVG now */
    .lg-outer .lg-close:after {
        content: '' !important;
        display: none !important;
    }

    /* Hover state for touch devices */
    .lg-outer .lg-close:hover {
        background-color: rgba(234, 179, 8, 0.8) !important;
        border-color: var(--primary) !important;
        transform: scale(1.1) !important;
    }

    /* Hardware Acceleration for Mobile Sliding */
    .lg-item,
    .lg-img-wrap,
    .lg-object {
        will-change: transform, opacity;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
        transform: translate3d(0, 0, 0);
    }

    /* Ensure custom download button is also visible on mobile */
    .lg-toolbar #lg-custom-download {
        width: 50px !important;
        height: 42px !important;
        margin: 5px !important;
    }

    .lg-toolbar #lg-custom-download svg {
        width: 24px !important;
        height: 24px !important;
    }
}

/* ============================================
   SWIPER.JS GALLERY STYLES
   ============================================ */

.swiper-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: #000000;
    display: block !important;
    transition: opacity 0.3s ease;
}

.swiper-overlay.hidden {
    display: none;
    opacity: 0;
}

.swiper {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

.swiper-top-bar {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 10001 !important;
}

.swiper-slide {
    touch-action: none !important;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    padding-bottom: 20px !important;
    transition: padding 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.swiper-overlay.tools-hidden .swiper-slide {
    padding-bottom: 0 !important;
}

.swiper-zoom-container {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swiper-zoom-container img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    user-select: none;
}

/* Swiper fullscreen autohide and centering transitions */
.swiper-top-bar,
.swiper-bottom-controls-wrapper,
.swiper-caption,
.swiper-button-next,
.swiper-button-prev,
.swiper-close-btn,
.swiper-close-overlay-btn {
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* Hide tools when inactive */
.swiper-overlay.tools-hidden .swiper-top-bar {
    transform: translateY(-100%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.swiper-overlay.tools-hidden .swiper-bottom-controls-wrapper {
    transform: translate(-50%, 150%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.swiper-overlay.tools-hidden .swiper-caption {
    transform: translateY(100%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.swiper-overlay.tools-hidden .swiper-button-next {
    transform: translate(100%, -50%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.swiper-overlay.tools-hidden .swiper-button-prev {
    transform: translate(-100%, -50%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.swiper-overlay.tools-hidden .swiper-close-btn {
    transform: scale(0.5) !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.swiper-overlay.tools-hidden .swiper-close-overlay-btn {
    transform: scale(0.5) !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Close Button */
.swiper-close-btn {
    position: absolute;
    top: calc(32px + env(safe-area-inset-top, 0px));
    right: 20px;
    z-index: 10002;
    background: rgba(255, 255, 255, 0.1);
    border: none;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    color: white;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}

.swiper-close-btn:hover {
    background: rgba(255, 255, 255, 0.3);
}

/* Caption / Download Button */
.swiper-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 20px 24px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.6) 50%, transparent 100%);
    z-index: 100;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    pointer-events: none;
}

.caption-content {
    text-align: left;
    color: white;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
    pointer-events: auto;
    max-width: 70%;
}

.photo-filename {
    font-size: 0.95rem;
    font-weight: 600;
    opacity: 0.95;
    margin-bottom: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.quality-hint {
    font-size: 0.75rem;
    color: var(--primary);
    font-weight: 500;
    letter-spacing: 0.02em;
    display: flex;
    align-items: center;
    gap: 4px;
}

.quality-hint::before {
    content: '★';
    font-size: 0.7rem;
}

.swiper-download-btn {
    pointer-events: auto;
    background: var(--primary);
    color: #000;
    border: none;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(234, 179, 8, 0.5);
    transition: transform 0.2s;
}

.swiper-download-btn:active {
    transform: scale(0.9);
}

.swiper-pagination-fraction {
    color: rgba(255, 255, 255, 0.6);
    font-family: var(--font-body);
    top: 20px !important;
    bottom: auto !important;
}

.swiper-button-next,
.swiper-button-prev {
    color: rgba(255, 255, 255, 0.75) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    transition: background 0.2s, color 0.2s !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    opacity: 1 !important;
}

.swiper-button-next:hover,
.swiper-button-prev:hover {
    background: rgba(255, 255, 255, 0.14) !important;
    color: #fff !important;
}

.swiper-button-next::after,
.swiper-button-prev::after {
    font-size: 1rem !important;
    font-weight: 700 !important;
}

/* Mobile Adjustments */
@media (max-width: 768px) {

    .swiper-slide {
        padding-bottom: 70px !important;
    }

    .swiper-button-next,
    .swiper-button-prev {
        /* Ensure arrows are visible on mobile, just smaller */
        transform: scale(0.7);
    }
}

/* Spinner Animation */
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* ============================================
   EVENT HERO CARD (ROYAL GOLD DESIGN)
   ============================================ */

/* ============================================
   EVENT HERO CARD (MINIMALIST LUXURY - DARK CARD)
   ============================================ */

.event-hero-card {
    display: flex;
    flex-direction: column;
    max-width: 600px;
    margin: 0 auto;
    padding: 0;
    overflow: hidden;
    position: relative;
    border: none;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    background: #040816;
    animation: fadeInScale 0.8s ease-out;
}

/* Clean Minimalist Design - No Pseudo-elements */

@keyframes fadeInScale {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.event-hero-image-container {
    width: 100%;
    position: relative;
    background: #0f172a;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    min-height: 200px;
}

.event-hero-img {
    width: 100%;
    height: auto;
    display: block;
}

/* Details Section (Bottom of Card) */
.event-hero-details {
    padding: 30px 40px 40px;
    text-align: center;
    background: radial-gradient(circle at center, rgba(30, 41, 59, 0.9), rgba(2, 6, 23, 1));
    position: relative;
    z-index: 1;
    margin-top: 0;
}

.hero-welcome {
    font-size: 0.75rem;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.2rem;
    margin-bottom: 12px;
    font-weight: 700;
    white-space: nowrap;
}

/* Typography Overrides */
.event-hero-details .title {
    font-family: 'Playfair Display', serif;
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: #fff;
    /* White text on Dark Card */
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.6);
    letter-spacing: -0.01em;
    white-space: nowrap;
}

.hero-meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    font-family: var(--font-body);
    font-size: 1.2rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: #EAB308;
    margin-bottom: 25px;
    margin-top: 20px;
}

/* Decoration Removed */
.hero-meta::before {
    display: none;
}

.meta-divider {
    display: none;
}

/* Hero Card Messages */
.hero-welcome {
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: #D4AF37;
    /* Gold */
    margin-bottom: 15px;
    font-weight: 600;
    opacity: 0.9;
}

.hero-description {
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    color: #e2e8f0;
    /* Silver */
    max-width: 480px;
    margin: 0 auto 30px;
}

.event-page .hero-welcome {
    color: #D4AF37 !important;
}

.event-hero-card .date {
    color: #D4AF37 !important;
}

.event-page .hero-description {
    color: #cbd5e1 !important;
}

/* Fallback Header (Old Style) - Hidden by default if JS enables card */
.default-header-content {
    animation: fadeIn 0.5s ease;
}

/* Professional Glass Button */
.glass-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 14px 36px;

    /* Gold Background */
    background: #D4AF37;

    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50px;
    /* Fully rounded pill shape */

    color: #0f172a;
    /* Dark text for contrast */
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;

    cursor: pointer;
    box-shadow: 0 10px 30px -10px rgba(212, 175, 55, 0.5);
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.glass-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 40px -10px rgba(212, 175, 55, 0.7);
    filter: brightness(1.1);
}

.glass-btn-primary i {
    font-size: 1.2rem;
    transition: transform 0.3s ease;
}

.glass-btn-primary:hover i {
    transform: translateX(4px);
}

/* Mobile Adjustments */
@media (max-width: 768px) {
    .event-hero-card {
        margin: 0;
        width: 100%;
        border-radius: 0 0 12px 12px; /* Smooth bottom corners only if at top */
        outline: none;
    }

    .event-hero-details {
        padding: 15px 15px 25px;
        margin-top: -20px;
    }

    .event-hero-details .title {
        font-size: 1.3rem;
        margin-bottom: 0.2rem;
        white-space: nowrap;
    }

    .hero-welcome {
        font-size: 0.65rem;
        letter-spacing: 0.15rem;
    }

    .hero-meta {
        font-size: 1rem;
    }
}

/* Force Landing Page Dark Theme for Glass Cards */
body:not(.event-page) .glass-card {
    background: rgba(15, 23, 42, 0.6) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.5) !important;
    color: #f8fafc !important;
}

body:not(.event-page) .glass-card h3,
body:not(.event-page) .glass-card p,
body:not(.event-page) .glass-card strong {
    color: #f8fafc !important;
    /* Ensure text is white */
}

body:not(.event-page) .glass-card p {
    color: #cbd5e1 !important;
    /* Muted text */
}

body:not(.event-page) .section-title {
    background: linear-gradient(135deg, #EAB308 0%, #FDE047 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}



/* ============================================
   PREMIUM DARK CARD OVERRIDE FOR EVENT PAGE
   ============================================ */
.event-page .event-hero-card {
    background: #040816 !important;
    border: none !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3) !important;
    color: #fff !important;
}

.event-page .event-hero-details .title {
    color: #fff !important;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.6) !important;
}

.event-page .event-hero-card .hero-meta {
    color: #EAB308 !important;
}

/* Ensure the wrapper also respects the dark theme if needed, roughly matching the card's intent */
.event-page .event-hero-details {
    background: radial-gradient(circle at center, rgba(30, 41, 59, 0.9), rgba(2, 6, 23, 1)) !important;
    border-top: none !important;
}

/* ============================================
   SKELETON LOADER
   ============================================ */
.skeleton-loader {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: #0f172a;
    /* Solid dark background to hide camera */
    z-index: 20;
    /* Higher z-index to ensure it's on top */
    display: flex;
    align-items: center;
    justify-content: center;
}

.skeleton-ring {
    width: 70%;
    height: 70%;
    border-radius: 50%;
    border: 4px solid transparent;
    border-top-color: var(--primary);
    animation: spinner-spin 1.2s cubic-bezier(0.55, 0.055, 0.675, 0.19) infinite;
}

@keyframes spinner-spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* Skeleton Card for Gallery Grid */
.skeleton-card {
    aspect-ratio: 1;
    border-radius: var(--border-radius-md);
    background: linear-gradient(90deg,
            rgba(30, 41, 59, 0.8) 0%,
            rgba(51, 65, 85, 0.6) 50%,
            rgba(30, 41, 59, 0.8) 100%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.5s ease-in-out infinite;
    /* GPU Layer for smooth animation */
    transform: translateZ(0);
    will-change: background-position;
}

@keyframes skeleton-shimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

/* ============================================
   BUTTON ANIMATIONS (PULSE GLOW)
   ============================================ */
/* Apply to Start Scan button and Hero CTA */
#start-camera-btn,
#start-experience-btn {
    position: relative;
    overflow: visible !important;
    /* Allow glow to spill out */
    z-index: 1;
}

#start-camera-btn::before,
#start-experience-btn::before {
    content: '';
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border-radius: 50px;
    /* Optimized: Use box-shadow instead of filter:blur for pulse effect */
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    z-index: -1;
    opacity: 0.5;
    animation: btn-pulse-glow 2s infinite;
    /* GPU Layer */
    will-change: transform, opacity;
}

@keyframes btn-pulse-glow {
    0% {
        transform: scale(0.95);
        opacity: 0.7;
    }

    50% {
        transform: scale(1.05);
        opacity: 0.4;
    }

    100% {
        transform: scale(0.95);
        opacity: 0.7;
    }
}

/* Start Camera Button Wrapper */
/* Start Camera Button Wrapper */
#start-camera-view {
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    /* Optimized: Solid background instead of backdrop-filter */
    background: rgba(15, 23, 42, 0.85);
    border-radius: 20px;
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
}

/* Event Page (Light Mode) Overrides for Visibility */
.event-page #start-camera-view {
    background: transparent;
    border: none;
    padding: 0;
}

.event-page .skeleton-loader {
    background: rgba(255, 255, 255, 0.9);
    /* Lighter background for light mode */
}

/* Camera Hint / Message Boundaries */
.camera-hint {
    /* Optimized: Solid background instead of backdrop-filter */
    background: rgba(30, 41, 59, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.15);
    padding: 8px 16px;
    border-radius: 50px;
    display: inline-block;
    margin-top: 16px;
    font-size: 0.95rem;
    font-weight: 500;
    transition: background 0.2s ease, color 0.2s ease;
    color: #f8fafc;
}

.event-page .camera-hint {
    /* Default: Light background for face detection messages */
    background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
    border: 2px solid rgba(234, 179, 8, 0.6);
    color: #000 !important;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
    animation: none;
    transition: all 0.3s ease;
}

/* Eye-catching gold style for loading states */
.event-page .camera-hint.loading {
    background: linear-gradient(135deg, #EAB308 0%, #F59E0B 100%);
    border: 2px solid rgba(234, 179, 8, 0.8);
    color: #000;
    box-shadow: 0 4px 15px rgba(234, 179, 8, 0.4);
    animation: hint-pulse 2s ease-in-out infinite;
}

/* Warning style - Yellow background with black text */
.event-page .camera-hint.warning {
    background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%) !important;
    border: 2px solid #f59e0b !important;
    color: #000 !important;
    box-shadow: 0 4px 15px rgba(245, 158, 11, 0.4);
}

/* Success style - Green background with black text */
.event-page .camera-hint.success {
    background: linear-gradient(135deg, #4ade80 0%, #22c55e 100%) !important;
    border: 2px solid #22c55e !important;
    color: #000 !important;
    box-shadow: 0 4px 15px rgba(34, 197, 94, 0.4);
}

@keyframes hint-pulse {

    0%,
    100% {
        transform: scale(1);
        box-shadow: 0 4px 15px rgba(234, 179, 8, 0.4);
    }

    50% {
        transform: scale(1.02);
        box-shadow: 0 6px 20px rgba(234, 179, 8, 0.6);
    }
}

/* Make liveness text colors darker in light mode unless overridden by inline style */


/* Improve Start Scan Description Text */
#start-camera-view .text-muted {
    font-weight: 500;
    opacity: 0.8;
}

/* Camera Actions Footer */
.camera-actions {
    margin-top: 20px;
    display: flex;
    justify-content: center;
}

.cancel-camera-btn {
    /* Fully red cancel button */
    background: #ef4444;
    border: 2px solid #dc2626;
    color: #fff;
    padding: 10px 24px;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
}

.event-page .cancel-camera-btn {
    background: #ef4444;
    border: 2px solid #dc2626;
    color: #fff;
}

.cancel-camera-btn:hover {
    background: #dc2626;
    border-color: #b91c1c;
    transform: scale(1.05);
    box-shadow: 0 6px 16px rgba(239, 68, 68, 0.5);
}

.camera-message-container {
    min-height: 40px;
    /* Prevent layout jump */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 10px;
}

/* ============================================
   FIXES FOR CLICKABLE ELEMENTS
   ============================================ */



/* Make footer clickable above particles */
.site-footer {
    position: relative;
    z-index: 100 !important;
}

/* Ensure container is above particles */
.container {
    position: relative;
    z-index: 1;
}

/* ============================================
   UI OVERLAYS (Numbering & Favorites)
   ============================================ */
.photo-card .photo-number {
    position: absolute;
    top: 10px;
    left: 10px;

    /* Optimized: Solid background instead of blur for performance */
    background: rgba(0, 0, 0, 0.65);
    border: 1px solid rgba(234, 179, 8, 0.5);
    color: #EAB308;

    font-family: 'Playfair Display', serif;
    font-size: 0.9rem;
    font-weight: 700;
    font-style: italic;

    min-width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;

    border-radius: 50px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);

    z-index: 5;
    pointer-events: none;
    letter-spacing: 0.02em;

    /* GPU Acceleration */
    transform: translateZ(0);
    will-change: opacity;
}

.photo-card .favorite-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    /* Optimized: Solid background instead of blur */
    background: rgba(0, 0, 0, 0.5);
    border: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    transition: background 0.15s ease, transform 0.15s ease;
    color: rgba(255, 255, 255, 0.85);

    /* GPU Acceleration */
    transform: translateZ(0);
    will-change: transform;
}

.photo-card .favorite-btn:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: scale(1.1);
}

.photo-card .favorite-btn.active {
    color: #ef4444;
    background: rgba(255, 255, 255, 0.9);
    /* More visible active bg */
}

.photo-card .favorite-btn svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    transition: fill 0.2s ease;
}

.photo-card .favorite-btn.active svg {
    fill: currentColor;
    stroke: none;
}

/* Fix Checkbox Overlay Position */
.checkbox-overlay {
    top: auto !important;
    bottom: 10px !important;
    right: 10px !important;
    left: auto !important;
    width: auto !important;
    height: auto !important;
    background: none !important;
}

.custom-checkbox-container {
    width: 24px;
    height: 24px;
}

/* Help & Support Redesign */
.support-container {
    display: flex;
    gap: 24px;
    height: 100%;
}

.support-left {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
    overflow-y: auto;
    padding-right: 8px;
}

.support-left::-webkit-scrollbar {
    width: 6px;
}

.support-left::-webkit-scrollbar-track {
    background: transparent;
}

.support-left::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.1);
    border-radius: 4px;
}

.support-right {
    flex: 1.2;
    display: flex;
    flex-direction: column;
    height: 100%;
    margin-bottom: 24px;
}

/* FAQ Accordion */
.faq-item {
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 12px;
    margin-bottom: 12px;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02);
}

.faq-item:hover {
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.04);
}

.faq-header {
    padding: 16px 20px;
    cursor: pointer;
    font-weight: 600;
    font-size: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--text-dark);
}

.faq-icon {
    transition: transform 0.3s ease;
    color: var(--primary);
}

.faq-body {
    padding: 0 20px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.6;
}

.faq-item.active .faq-body {
    padding: 0 20px 16px;
    max-height: 300px;
}

.faq-item.active .faq-icon {
    transform: rotate(180deg);
}

/* Quick Actions */
.quick-action-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.quick-action-card {
    background: linear-gradient(135deg, rgba(255, 255, 255, 1), rgba(250, 250, 249, 0.9));
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 12px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.quick-action-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 16px rgba(234, 179, 8, 0.1);
    border-color: rgba(234, 179, 8, 0.3);
}

.quick-action-card svg {
    color: var(--primary);
}

.quick-action-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-dark);
}

/* Responsive */
@media (max-width: 900px) {
    .support-container {
        flex-direction: column;
    }

    .support-right {
        height: 500px;
        flex: none;
    }

    #main-tab-support {
        height: auto !important;
        padding-bottom: 40px !important;
    }
}

/* ============================================
   HELP & SUPPORT (SUPERDESIGN)
   ============================================ */
.sd-support-container {
    font-family: 'Satoshi', sans-serif;
    color: #1a1a1a;
}

.sd-brand-title {
    font-family: 'Playfair Display', serif;
}

.sd-faq-item[open] summary iconify-icon {
    transform: rotate(180deg);
}

.sd-faq-item summary::-webkit-details-marker {
    display: none;
}

.sd-chat-bubble-user {
    background: var(--primary);
    color: white;
    border-radius: 18px 18px 4px 18px;
}

.sd-chat-bubble-agent {
    background: white;
    border: 1px solid #e2e8f0;
    color: #1a1a1a;
    border-radius: 18px 18px 18px 4px;
}

/* ============================================
   GDPR COMPLIANCE (COOKIE & BIOMETRIC)
   ============================================ */
   
/* Cookie Consent Banner */
.cookie-banner {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 48px);
    max-width: 600px;
    background: rgba(15, 23, 42, 0.96);
    border: 1px solid rgba(234, 179, 8, 0.3);
    border-radius: 16px;
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 20px rgba(234, 179, 8, 0.1);
    z-index: 9999;
    opacity: 1;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.event-page .cookie-banner, body:not(.dark) .cookie-banner {
    background: rgba(255, 255, 255, 0.95);
    border-color: rgba(0, 0, 0, 0.1);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}
body.dark .cookie-banner {
    background: rgba(15, 23, 42, 0.95);
    border-color: rgba(16, 185, 129, 0.3);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
}

.cookie-banner.hidden {
    opacity: 0;
    transform: translate(-50%, 40px);
    pointer-events: none;
}

.cookie-content {
    display: flex;
    align-items: center;
    gap: 16px;
}

.cookie-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(234, 179, 8, 0.1);
    border: 1px solid rgba(234, 179, 8, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary);
    flex-shrink: 0;
}

.cookie-text h4 {
    margin: 0 0 4px;
    color: #fff;
    font-size: 16px;
}
.event-page .cookie-text h4, body:not(.dark) .cookie-text h4 {
    color: #1f2937;
}

.cookie-text p {
    margin: 0;
    color: rgba(255, 255, 255, 0.7);
    font-size: 13px;
    line-height: 1.5;
}
.event-page .cookie-text p, body:not(.dark) .cookie-text p {
    color: #6b7280;
}

@media (max-width: 640px) {
    .cookie-banner {
        flex-direction: column;
        text-align: center;
        gap: 16px;
        padding: 20px;
        bottom: 16px;
    }
    .cookie-content {
        flex-direction: column;
    }
    .cookie-actions {
        width: 100%;
    }
    .cookie-actions button {
        width: 100%;
    }
}

/* Biometric Consent Box */
/* Biometric Consent Box */
.biometric-consent {
    margin: 0 auto 20px;
    text-align: left;
    background: var(--glass-bg);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow);
    width: 100%;
    max-width: 480px;
    box-sizing: border-box;
}

/* Event page (light mode) - make the consent box visible */
.event-page .biometric-consent {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.custom-checkbox-container {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    position: relative;
    width: 100%;
}

.custom-checkbox-container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.checkmark-box {
    width: 22px;
    height: 22px;
    background: rgba(0, 0, 0, 0.06);
    border: 2px solid rgba(0, 0, 0, 0.2);
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 2px;
    transition: all 0.2s ease;
}

/* Event page - darker border so checkbox is visible */
.event-page .checkmark-box {
    background: #ffffff;
    border: 2px solid #94a3b8;
}

.checkmark-icon {
    width: 14px;
    height: 14px;
    color: var(--primary);
    opacity: 0;
    transform: scale(0.5);
    transition: all 0.2s ease;
}

.custom-checkbox-container input:checked ~ .checkmark-box {
    border-color: var(--primary) !important;
    background: rgba(234, 179, 8, 0.15) !important;
}

.custom-checkbox-container input:checked ~ .checkmark-box .checkmark-icon {
    opacity: 1 !important;
    transform: scale(1) !important;
}

/* Event page checked state */
.event-page .custom-checkbox-container input:checked ~ .checkmark-box {
    border-color: #EAB308 !important;
    background: rgba(234, 179, 8, 0.12) !important;
}

/* Consent text styling */
/* Consent text styling */
.biometric-consent .consent-text {
    font-size: 0.85rem;
    color: var(--text-secondary);
    line-height: 1.6;
    flex: 1;
    min-width: 0;
    display: block;
    word-break: normal;
}

.biometric-consent .consent-text a {
    color: var(--primary);
    text-decoration: underline;
    font-weight: 500;
}

.event-page .biometric-consent .consent-text {
    color: #475569;
}

.event-page .biometric-consent .consent-text a {
    color: #EAB308;
}

/* Consent error message */
.consent-error-msg {
    color: #ef4444;
    font-size: 0.8rem;
    margin-top: 10px;
    font-weight: 500;
    padding-left: 34px;
}

@keyframes shake {
    0% { transform: translateX(0); }
    25% { transform: translateX(-6px); }
    50% { transform: translateX(6px); }
    75% { transform: translateX(-6px); }
    100% { transform: translateX(0); }
}

/* ============================================
   GUEST REGISTRATION GATE
   ============================================ */


.guest-reg-header {
    text-align: center;
    margin-bottom: 24px;
}

.guest-reg-icon {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(139, 92, 246, 0.1));
    border: 1px solid rgba(99, 102, 241, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
    color: #6366f1;
}

.guest-reg-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 6px;
    color: #1f2937;
}

.guest-reg-subtitle {
    font-size: 0.9rem;
    color: #6b7280;
    margin: 0;
    line-height: 1.5;
}

.guest-reg-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.guest-reg-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.guest-reg-field label {
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    display: flex;
    align-items: center;
    gap: 6px;
}

.guest-reg-field label svg {
    color: #6366f1;
}

.guest-reg-field input {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid #d1d5db;
    border-radius: 10px;
    font-size: 15px;
    font-family: 'Inter', sans-serif;
    color: #1f2937;
    background: #fff;
    transition: all 0.2s ease;
    outline: none;
    box-sizing: border-box;
}

.guest-reg-field input::placeholder {
    color: #9ca3af;
}

.guest-reg-field input:focus {
    border-color: #6366f1;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}

.guest-reg-field input.error {
    border-color: #ef4444;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

.field-error {
    font-size: 12px;
    color: #ef4444;
    min-height: 16px;
    line-height: 1.3;
    font-weight: 500;
}

.guest-reg-submit {
    width: 100%;
    padding: 14px;
    border: none;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    font-family: 'Inter', sans-serif;
    color: #fff;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.25s ease;
    box-shadow: 0 4px 14px rgba(99, 102, 241, 0.3);
    margin-top: 4px;
}

.guest-reg-submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(99, 102, 241, 0.4);
}

.guest-reg-submit:active {
    transform: translateY(0);
}

.guest-reg-submit:disabled {
    opacity: 0.7;
    cursor: not-allowed;
    transform: none;
}

.guest-reg-submit-spinner {
    display: flex;
    align-items: center;
}

.guest-reg-privacy {
    text-align: center;
    font-size: 11px;
    color: #9ca3af;
    margin: 4px 0 0;
    line-height: 1.5;
}




/* ============================================
   CONSENT MODAL
   ============================================ */
.consent-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(15, 23, 42, 0.85);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 1;
    transition: opacity 0.3s ease;
}

.consent-modal-overlay.hidden {
    opacity: 0;
    pointer-events: none;
}

.consent-modal-content {
    background: #ffffff;
    width: 100%;
    max-width: 460px;
    border-radius: 24px;
    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.2);
    overflow: hidden;
    transform: translateY(0) scale(1);
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.consent-modal-overlay.hidden .consent-modal-content {
    transform: translateY(20px) scale(0.95);
}

.consent-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 24px 16px;
}

.consent-modal-header h3 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    color: #1e293b;
    font-family: 'Inter', sans-serif;
}

.consent-close-btn {
    background: transparent;
    border: none;
    font-size: 28px;
    color: #94a3b8;
    line-height: 1;
    cursor: pointer;
    transition: color 0.2s;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
}

.consent-close-btn:hover {
    color: #0f172a;
    background: #f1f5f9;
}

.consent-modal-body {
    padding: 0 24px 20px;
    text-align: center;
}

.consent-modal-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 20px;
    background: #fefce8;
    color: #d19f36;
    border: 1px solid #fde047;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.consent-modal-icon i {
    font-size: 2rem;
}

.consent-modal-body > p {
    font-size: 0.95rem;
    color: #475569;
    line-height: 1.6;
    margin: 0 0 20px;
}

.consent-modal-terms {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 16px;
    text-align: left;
}

.consent-modal-terms p {
    font-size: 0.85rem;
    color: #475569;
    line-height: 1.5;
    margin: 0 0 12px;
}

.consent-modal-terms p:last-child {
    margin-bottom: 0;
}

.consent-modal-terms a {
    color: var(--primary-dark);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(180, 148, 31, 0.3);
    text-underline-offset: 2px;
    transition: all 0.2s ease;
}

.consent-modal-terms a:hover {
    color: var(--primary);
    text-decoration-color: var(--primary);
}

.text-secure {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: #047857 !important;
    background: #ecfdf5;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid #d1fae5;
}

.text-secure svg {
    flex-shrink: 0;
    margin-top: 2px;
}

.text-secure strong {
    font-weight: 600;
}

.consent-modal-actions {
    display: flex;
    gap: 12px;
    padding: 20px 24px 24px;
    border-top: 1px solid #f1f5f9;
}

.consent-modal-actions button {
    flex: 1;
    padding: 14px 20px;
    border-radius: 12px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    border: none;
    font-family: 'Inter', sans-serif;
}

.consent-btn-decline {
    background: #f1f5f9;
    color: #475569;
}

.consent-btn-decline:hover {
    background: #e2e8f0;
    color: #1e293b;
}

.consent-btn-agree {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: white;
    box-shadow: 0 4px 12px rgba(234, 179, 8, 0.25);
}

.consent-btn-agree:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(234, 179, 8, 0.35);
}

/* Ensure the modal stays on top relative to other elements */
.event-page .consent-modal-overlay {
    position: fixed;
    z-index: 99999;
}

/* Fix for iOS Safari background-attachment: fixed whitespace bug */
@supports (-webkit-touch-callout: none) {
    body, body.event-page, body.custom-bg-active, .hero {
        background-attachment: scroll !important;
    }
}

/* --- Viewing Context Tag --- */
.viewing-for-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(234, 179, 8, 0.08);
    padding: 6px 14px;
    border-radius: 50px;
    margin-bottom: 20px;
    border: 1px solid rgba(234, 179, 8, 0.2);
    align-self: center;
    animation: fadeInDown 0.6s ease-out;
}

@media (min-width: 1024px) {
    .viewing-for-tag {
        align-self: center;
    }
}

.viewing-label {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.viewing-user-name {
    justify-content: space-between;
    padding: 24px 24px 16px;
}

.consent-modal-header h3 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    color: #1e293b;
    font-family: 'Inter', sans-serif;
}

.consent-close-btn {
    background: transparent;
    border: none;
    font-size: 28px;
    color: #94a3b8;
    line-height: 1;
    cursor: pointer;
    transition: color 0.2s;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
}

.consent-close-btn:hover {
    color: #0f172a;
    background: #f1f5f9;
}

.consent-modal-body {
    padding: 0 24px 20px;
    text-align: center;
}

.consent-modal-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 20px;
    background: #fefce8;
    color: #d19f36;
    border: 1px solid #fde047;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.consent-modal-icon i {
    font-size: 2rem;
}

.consent-modal-body > p {
    font-size: 0.95rem;
    color: #475569;
    line-height: 1.6;
    margin: 0 0 20px;
}

.consent-modal-terms {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 16px;
    text-align: left;
}

.consent-modal-terms p {
    font-size: 0.85rem;
    color: #475569;
    line-height: 1.5;
    margin: 0 0 12px;
}

.consent-modal-terms p:last-child {
    margin-bottom: 0;
}

.consent-modal-terms a {
    color: var(--primary-dark);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(180, 148, 31, 0.3);
    text-underline-offset: 2px;
    transition: all 0.2s ease;
}

.consent-modal-terms a:hover {
    color: var(--primary);
    text-decoration-color: var(--primary);
}

.text-secure {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: #047857 !important;
    background: #ecfdf5;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid #d1fae5;
}

.text-secure svg {
    flex-shrink: 0;
    margin-top: 2px;
}

.text-secure strong {
    font-weight: 600;
}

.consent-modal-actions {
    display: flex;
    gap: 12px;
    padding: 20px 24px 24px;
    border-top: 1px solid #f1f5f9;
}

.consent-modal-actions button {
    flex: 1;
    padding: 14px 20px;
    border-radius: 12px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    border: none;
    font-family: 'Inter', sans-serif;
}

.consent-btn-decline {
    background: #f1f5f9;
    color: #475569;
}

.consent-btn-decline:hover {
    background: #e2e8f0;
    color: #1e293b;
}

.consent-btn-agree {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: white;
    box-shadow: 0 4px 12px rgba(234, 179, 8, 0.25);
}

.consent-btn-agree:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(234, 179, 8, 0.35);
}

/* Ensure the modal stays on top relative to other elements */
.event-page .consent-modal-overlay {
    position: fixed;
    z-index: 99999;
}

/* Fix for iOS Safari background-attachment: fixed whitespace bug */
@supports (-webkit-touch-callout: none) {
    body, body.event-page, body.custom-bg-active, .hero {
        background-attachment: scroll !important;
    }
}

/* --- Viewing Context Tag --- */
.viewing-for-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(234, 179, 8, 0.08);
    padding: 6px 14px;
    border-radius: 50px;
    margin-bottom: 20px;
    border: 1px solid rgba(234, 179, 8, 0.2);
    align-self: center;
    animation: fadeInDown 0.6s ease-out;
}

@media (min-width: 1024px) {
    .viewing-for-tag {
        align-self: center;
    }
}

.viewing-label {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.viewing-user-name {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--primary);
}

/* --- Unified Mobile & Tablet Optimization (1023px) --- */
/* --- Modified Mobile branding (Logo + Brand + Full Message) --- */
@media (max-width: 1023px) {
    .card-inner-header {
        display: flex !important;
        flex-direction: column !important; /* Stack for mobile to fit full text */
        align-items: center !important;
        padding: 15px !important;
        gap: 12px !important;
        text-align: center !important;
    }

    .card-inner-left {
        justify-content: center !important;
        gap: 10px !important;
    }

    .card-inner-brand {
        display: block !important; /* Show brand text */
        font-size: 1.1rem !important;
        letter-spacing: 2px !important;
    }

    .card-inner-right {
        width: 100% !important;
        justify-content: center !important;
    }

    /* Removed the forced full signup text overrides so mobile responsive pill works as intended */
    .card-inner-signup {
        font-size: 0.82rem !important;
        padding: 0.6rem 1.2rem !important;
        background: rgba(0,0,0,0.02) !important;
        border: 1px solid rgba(0,0,0,0.08) !important;
        border-radius: 50px !important;
        width: fit-content !important;
    }
    
    .dark-mode .card-inner-signup {
        background: rgba(255,255,255,0.04) !important;
        border-color: rgba(255,255,255,0.1) !important;
    }

    /* Restore Event Details on mobile but keep them slim */
    .header-event-info-card {
        display: block !important;
        background: rgba(255, 255, 255, 0.92) !important;
        border: 1px solid rgba(234, 179, 8, 0.3) !important;
        border-radius: 16px !important;
        padding: 12px !important;
        margin: 10px 15px 15px !important;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05) !important;
        text-align: center !important;
    }

    .header-event-title {
        font-size: 1.05rem !important;
        font-weight: 700 !important;
        margin-bottom: 2px !important;
    }

    /* Maintain flow for other elements */
    .upload-landscape-wrapper {
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
    }

    .upload-animation-side {
        order: 1 !important;
        width: 100% !important;
        height: 240px !important;
        margin-top: 5px !important;
        margin-bottom: 25px !important;
    }
    
    .selfie-anim-container {
        transform: scale(1.0) !important;
    }

    .upload-content-side {
        order: 2 !important;
    }

    /* Smooth Transition Logic */
    .upload-animation-side, .upload-content-side {
        transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1) !important;
    }

    .camera-transition-active .upload-animation-side {
        opacity: 0 !important;
        height: 0 !important;
        margin: 0 !important;
        transform: translateY(-20px) scale(0.9) !important;
        pointer-events: none !important;
    }

    .camera-transition-active .upload-content-side {
        transform: translateY(0) !important;
    }

    #mobile-camera-section {
        order: 1 !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        padding: 0 !important;
        animation: fadeInScale 0.6s ease-out forwards;
    }
}

@keyframes fadeInScale {
    from {
        opacity: 0;
        transform: scale(0.95) translateY(10px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.storyset-animation {
    max-width: 100% !important;
    height: auto !important;
}

/* ============================================
   HEADER & TOP BAR (RESTORED FROM BACKUP)
   ============================================ */
.header {
    text-align: center;
    padding: 30px 20px 0;
    transition: padding 0.5s ease;
}

.header.hero-hidden {
    padding-top: 10px;
}

.header.hero-hidden .top-bar {
    margin-bottom: 0.5rem;
}

.top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1rem;
    padding: 10px 0;
    width: 100%;
}

.top-bar-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.site-logo {
    width: 42px;
    height: 42px;
    object-fit: contain;
    filter: drop-shadow(0 0 10px rgba(234, 179, 8, 0.4));
}

.brand-name {
    font-family: var(--font-body);
    font-size: 0.95rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    text-shadow: 0 0 15px rgba(255,255,255,0.2);
}

.top-bar-right {
    display: flex;
    align-items: center;
}

/* Landing Hero Page - The New Entrance */
/* ============================================
   EVENT HERO CARD (MINIMALIST LUXURY)
   ============================================ */
.event-hero-card {
    display: flex !important;
    flex-direction: column;
    max-width: 600px;
    margin: 40px auto;
    padding: 0;
    overflow: hidden;
    position: relative;
    border: 1px solid rgba(234, 179, 8, 0.5);
    border-radius: 20px;
    box-shadow: var(--glass-shadow), 0 0 30px rgba(234, 179, 8, 0.1);
    background: var(--glass-bg);
    animation: fadeInScale 0.8s var(--ease-out-expo);
}

@keyframes fadeInScale {
    from { opacity: 0; transform: translateY(20px) scale(0.95); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

#event-header {
    padding: 0 !important;
}

.event-hero-image-container {
    width: 100%;
    position: relative;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    min-height: auto;
}

.event-hero-img {
    width: 100%;
    height: auto;
    display: block;
}

.event-hero-details {
    padding: 30px 32px 45px;
    text-align: center;
    background: linear-gradient(to bottom, transparent, var(--primary-bg));
    position: relative;
    z-index: 2;
    margin-top: -60px;
    /* Prevent children from overflowing the card */
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}

.header-decoration {
    width: 60px;
    height: 3px;
    background: var(--primary);
    margin: 0 auto 20px;
    border-radius: 10px;
}

.hero-welcome {
    font-size: 0.75rem;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin-bottom: 12px;
    font-weight: 700;
    /* Allow wrapping on very small screens instead of overflowing */
    white-space: normal;
    overflow-wrap: break-word;
}

.event-hero-details .title {
    font-family: var(--font-heading);
    /* Fluid font: min 1.35rem, preferred 4.5vw, max 2rem */
    font-size: clamp(1.35rem, 4.5vw, 2rem);
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--text-primary);
    text-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    letter-spacing: -0.01em;
    /* Prevent overflow on narrow screens */
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
    max-width: 100%;
}

.hero-meta .date {
    color: #EAB308;
    font-size: 1.2rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    opacity: 0.9;
}

.hero-description {
    color: var(--text-secondary);
    max-width: 450px;
    margin: 20px auto 30px;
    font-size: 1rem;
    line-height: 1.6;
}

/* Lottie accent inside hero card */
.hero-lottie-accent {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 24px;
    animation: heroBobFloat 3s ease-in-out infinite alternate;
    filter: drop-shadow(0 6px 18px rgba(212, 175, 55, 0.25));
    will-change: transform;
}

@keyframes heroBobFloat {
    0%   { transform: translateY(0px); }
    100% { transform: translateY(-8px); }
}

/* ─── Seamless Selfie Scan Container ───────────────────────────────────── */
.selfie-scan-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    padding: 16px 12px;
    background: transparent;
    border: none;
    box-shadow: none;
    margin: 0 auto;
    max-width: 380px;
}

/* Ambient glow backdrop - much softer, premium white/neutral vibe */
.scan-glow-backdrop {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top, rgba(255, 255, 255, 0.8) 0%, transparent 60%);
    pointer-events: none;
    z-index: 0;
}

/* Force strip out the ugly background from the #start-camera-view wrapper if inside the card */
.selfie-scan-card #start-camera-view {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
}

/* AI chip label - Sleek minimalist tag */
.scan-ai-chip {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 50px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #111;
    text-transform: uppercase;
    box-shadow: 0 2px 8px rgba(0,0,0,0.02);
}

.scan-ai-chip svg {
    color: #cca43b; /* Subtle gold accent */
    flex-shrink: 0;
}

/* Lottie + pulse rings container */
.selfie-lottie-indicator {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 170px;
    height: 170px;
    flex-shrink: 0;
    margin-bottom: -10px; /* Pull steps closer */
}

.scan-lottie-wrap {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: heroBobFloat 4s ease-in-out infinite alternate;
    filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.08));
    will-change: transform;
}

/* Gentle premium pulse rings */
.scan-pulse-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, 0.06);
    animation: premiumPulse 3s ease-out infinite;
    pointer-events: none;
}

.ring-1 { width: 140px; height: 140px; animation-delay: 0s; }
.ring-2 { width: 160px; height: 160px; animation-delay: 1s; border-color: rgba(212, 175, 55, 0.15); }
.ring-3 { width: 180px; height: 180px; animation-delay: 2s; border-color: rgba(0, 0, 0, 0.03); }

@keyframes premiumPulse {
    0%   { transform: scale(0.9); opacity: 0.8; }
    70%  { transform: scale(1.1); opacity: 0.1; }
    100% { transform: scale(1.15); opacity: 0; }
}

/* Step instructions - Frosted glass clean layout without harsh dividers */
.scan-steps {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    padding: 16px 12px;
    background: rgba(255, 255, 255, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 20px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.02);
}

.scan-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex: 1;
    text-align: center;
}

.step-num {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--primary); /* Vibrant yellow matching theme */
    color: #1a1a1a;             /* Dark text for perfect contrast on yellow */
    font-size: 0.75rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px var(--accent-glow);
    flex-shrink: 0;
}

.step-text {
    font-size: 0.65rem;
    color: #475569;
    font-weight: 500;
    line-height: 1.4;
    padding: 0 4px;
}

.scan-step-divider {
    display: none; /* Removed the messy dividers */
}

/* CTA Button - Luxurious Yellow/Gold pill */
.scan-cta-btn {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 32px;
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: #1a1a1a; /* Deep contrasting dark text */
    border: none;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    cursor: pointer;
    box-shadow:
        0 12px 24px var(--accent-glow),
        0 2px 4px rgba(0, 0, 0, 0.1);
    transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    width: 100%;
}

.scan-cta-btn:hover {
    transform: translateY(-2px) scale(1.01);
    box-shadow:
        0 16px 32px var(--accent-glow),
        0 4px 8px rgba(0, 0, 0, 0.15);
    background: linear-gradient(135deg, var(--primary-light) 0%, var(--primary) 100%);
}

.scan-cta-btn:active {
    transform: translateY(1px);
    box-shadow: 0 4px 12px var(--accent-glow);
}

.scan-cta-icon {
    display: flex;
    align-items: center;
    color: #1a1a1a;
    transform: translateY(-1px);
}

.scan-cta-label {
    text-align: center;
}

.scan-cta-arrow {
    display: flex;
    align-items: center;
    color: rgba(0, 0, 0, 0.5);
    transition: transform 0.3s ease, color 0.3s ease;
}

.scan-cta-btn:hover .scan-cta-arrow {
    transform: translateX(4px);
    color: #000;
}

/* Privacy note */
.scan-privacy-note {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.7rem;
    color: #64748b;
    margin: 0;
    text-align: center;
    font-weight: 500;
}

.scan-privacy-note svg {
    color: #10b981;
    flex-shrink: 0;
}

/* Hide card when camera or preview is active */
.selfie-scan-card.scan-hidden {
    display: none;
}

/* Lottie indicator hide (legacy — kept for JS compat) */
.selfie-lottie-indicator.hidden-by-js {
    display: none;
}

/* Gold Shimmer Button */
.glass-btn-primary {
    background: #D4AF37;
    color: #000;
    border: none;
    padding: 16px 40px;
    border-radius: 50px;
    font-weight: 800;
    font-size: 1.1rem;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    box-shadow: 0 10px 25px rgba(212, 175, 55, 0.4);
    transition: all 0.3s var(--ease-spring);
}

@keyframes btnShine {
    to { background-position: 200% center; }
}

.glass-btn-primary:hover {
    transform: translateY(-5px) scale(1.03);
    box-shadow: 0 15px 35px rgba(234, 179, 8, 0.5);
}
/* Global Light Theme Fix for Event Page */
.event-page .header,
.event-page section,
.event-page main,
.event-page .upload-section,
.event-page .guest-reg-gate {
    background: transparent !important;
}



.event-page .glass-card {
    background: rgba(255, 255, 255, 0.9) !important;
    color: #1e293b !important;
    border: 1px solid rgba(0, 0, 0, 0.1);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.05);
}

/* Fix for blank space */
.header.hero-hidden {
    min-height: 0 !important;
    height: auto !important;
    padding-top: 20px !important;
    padding-bottom: 10px !important;
}

.event-hero-card.hidden {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.hidden {
    display: none !important;
}

/* Ensure sections take up full space after hero is gone */
.guest-reg-gate:not(.hidden),
.upload-section:not(.hidden) {
    margin-top: 0 !important;
    padding-top: 20px !important;
}





/* --- Global Header & Security Updates --- */
.event-global-header {
    position: relative;
    z-index: 999;
    padding: 8px 0 !important;
    background: radial-gradient(circle at 10% 10%, rgba(147, 197, 253, 0.3) 0%, transparent 50%),
                radial-gradient(circle at 90% 90%, rgba(252, 211, 77, 0.25) 0%, transparent 50%),
                linear-gradient(135deg, rgba(255, 255, 255, 0.97), rgba(241, 245, 249, 0.95));
    border-bottom: 1px solid rgba(255, 255, 255, 0.9);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.8);
    transition: all 0.3s ease;
}

.event-global-header .top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.top-bar-center {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}

.event-global-header .site-logo {
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    flex-shrink: 0;
    filter: none;
}

.event-global-header #brand-header-logo {
    height: 48px;
    width: auto;
    max-width: 150px;
    object-fit: contain;
    margin: 0;
    flex-shrink: 0;
}

.event-global-header .brand-name {
    color: #1e293b;
    text-shadow: none;
    font-size: 1.15rem;
    letter-spacing: 0.15em;
    font-weight: 700;
    text-transform: uppercase;
}

.event-global-header .card-inner-signup {
    background: rgba(234, 179, 8, 0.1);
    color: #CA8A04;
    border: 1px solid rgba(234, 179, 8, 0.3);
    padding: 8px 18px;
    border-radius: 50px;
    font-weight: 600;
    box-shadow: none;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.event-global-header .card-inner-signup:hover {
    background: rgba(234, 179, 8, 0.2);
    transform: translateY(-1px);
}

.global-header-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 6px 24px;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.04), inset 0 1px 0 #ffffff;
}

.global-header-info .header-title {
    font-size: 1rem;
    font-weight: 700;
    color: #1a1a1a;
    font-family: var(--font-heading);
    line-height: 1.2;
}

.global-header-info .header-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.70rem;
    color: #64748b;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.global-header-info .meta-divider {
    color: var(--primary);
    opacity: 0.8;
}

@media (max-width: 768px) {
    .event-global-header {
        padding: 8px 0 !important;
    }
    
    .event-global-header .site-logo {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        min-height: 38px !important;
        flex-shrink: 0 !important;
    }
    
    .event-global-header #brand-header-logo {
        height: 38px !important;
        width: auto !important;
        max-width: 120px !important;
    }
    
    .event-global-header .brand-name {
        display: inline-block; /* Restored visibility per user request */
        font-size: 0.95rem !important;    /* Scaled down to prevent overlapping */
        letter-spacing: 0.05em;
    }
    
    .event-global-header .card-inner-signup {
        padding: 5px 10px !important;
        font-size: 0.7rem !important; /* Shrunk slightly to accommodate the full text safely */
    }

    .event-global-header .top-bar {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 10px;
        align-items: center;
    }

    .event-global-header .top-bar-left {
        grid-column: 1;
        grid-row: 1;
        justify-content: flex-start;
    }

    .event-global-header .top-bar-right {
        grid-column: 2;
        grid-row: 1;
        justify-content: flex-end;
    }

    .event-global-header .top-bar-center {
        grid-column: 1 / span 2;
        grid-row: 2;
        justify-content: center;
    }

    .global-header-info {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 2px;
        padding: 6px 16px;
        background: rgba(255, 255, 255, 0.6);
        border: 1px solid rgba(0, 0, 0, 0.08);
        border-radius: 50px;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
        width: max-content;
        margin: 0 auto;
    }

    .global-header-info .header-title {
        font-size: 0.95rem;
    }

    .global-header-info .header-meta {
        font-size: 0.65rem;
    }

    /* Reduce global card side gaps for small viewports */
    .glass-card {
        padding: 24px 18px !important;
        border-radius: 16px !important;
    }

    /* Hero card title: constrain padding and font on mobile */
    .event-hero-details {
        padding: 24px 20px 36px;
    }

    .event-hero-details .title {
        font-size: clamp(1.2rem, 5.5vw, 1.65rem);
        line-height: 1.25;
    }

    .hero-welcome {
        font-size: 0.68rem;
        letter-spacing: 0.08em;
    }
}

/* Upload Security List Redesign */
.upload-security-section {
    margin-top: 40px;
    padding-top: 35px;
    border-top: 1px dashed rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

.security-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    text-align: left;
    padding: 20px 24px;
    background: rgba(255, 255, 255, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: 20px;
    transition: all 0.25s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
}

.security-item:hover {
    transform: translateX(4px);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
    border-color: rgba(255, 255, 255, 1);
}

.security-icon {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(234, 179, 8, 0.08), rgba(234, 179, 8, 0.02));
    color: #CA8A04;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    flex-shrink: 0;
    border: 1px solid rgba(234, 179, 8, 0.2);
}

.security-content {
    display: flex;
    flex-direction: column;
    background: transparent;
    border: none;
    padding: 0;
    box-shadow: none;
}

.security-content h4 {
    font-size: 0.95rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 4px;
    font-family: var(--font-body);
}

.security-content p {
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.5;
    margin-bottom: 0;
}

/* Centering overrides for top-bar in global header */
.event-global-header .top-bar-left {
    flex: 1 !important;
    display: flex !important;
    justify-content: flex-start !important;
}

.event-global-header .top-bar-right {
    flex: 1 !important;
    display: flex !important;
    justify-content: flex-end !important;
}

/* ============================================
   BRANDING & WATERMARK STYLES
   ============================================ */

.brand-logo-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    padding: 0;
    margin-right: 12px;
}

.brand-logo-wrapper img {
    max-height: 56px;
    width: auto;
}
/* Brand Welcome Modal */
.brand-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.9);
    z-index: 99998;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.brand-modal-overlay.hidden {
    display: flex !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.brand-modal-overlay:not(.hidden) {
    opacity: 1;
    visibility: visible;
}

.brand-modal-content {
    background: #ffffff;
    border-radius: 32px;
    width: 90%;
    max-width: 440px;
    box-shadow: 0 25px 60px -15px rgba(15, 23, 42, 0.25), 0 20px 40px -20px rgba(15, 23, 42, 0.15);
    transform: translateY(30px) scale(0.96);
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    text-align: center;
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.brand-modal-overlay:not(.hidden) .brand-modal-content {
    transform: translateY(0) scale(1);
}

.brand-modal-cover {
    height: 130px;
    width: 100%;
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
}

.brand-modal-inner {
    position: relative;
    z-index: 1;
    padding: 0 32px 32px 32px;
}

.brand-modal-header {
    margin-bottom: 20px;
    display: flex;
    justify-content: center;
    margin-top: 75px;
}

.brand-modal-logo-wrapper {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: #ffffff;
    padding: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 12px 28px -5px rgba(0, 0, 0, 0.12), 0 8px 10px -6px rgba(0, 0, 0, 0.08);
    border: 3px solid #ffffff;
}

.brand-modal-logo-wrapper img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

.brand-modal-title {
    font-family: 'DM Sans', 'Inter', -apple-system, sans-serif;
    font-size: 1.6rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 4px 0;
}

.brand-modal-tagline {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-size: 1.15rem;
    color: #64748b;
    font-weight: 400;
    margin: 0 0 12px 0;
    text-transform: none;
    letter-spacing: 0.02em;
}

.brand-modal-message {
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    color: #475569;
    line-height: 1.6;
    max-width: 360px;
    margin: 0 auto 24px auto;
}

.brand-modal-contact {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-bottom: 28px;
}

.brand-modal-contact-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    border-radius: 24px;
    font-size: 14px;
    font-weight: 500;
    font-family: 'Inter', sans-serif;
    text-decoration: none;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid #e2e8f0;
}

.brand-modal-contact-item svg {
    width: 16px;
    height: 16px;
    margin-right: 6px;
    flex-shrink: 0;
    display: inline-block;
    vertical-align: middle;
}

/* Brand-Specific Colors for Contact Pills */
.brand-modal-contact-item.btn-instagram {
    color: #E1306C;
    border-color: rgba(225, 48, 108, 0.15);
    background: rgba(225, 48, 108, 0.06);
}
.brand-modal-contact-item.btn-instagram:hover {
    background: rgba(225, 48, 108, 0.12);
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(225, 48, 108, 0.1);
}

.brand-modal-contact-item.btn-whatsapp {
    color: #25D366;
    border-color: rgba(37, 211, 102, 0.15);
    background: rgba(37, 211, 102, 0.06);
}
.brand-modal-contact-item.btn-whatsapp:hover {
    background: rgba(37, 211, 102, 0.12);
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(37, 211, 102, 0.1);
}

.brand-modal-contact-item.btn-email {
    color: #EA4335;
    border-color: rgba(234, 67, 53, 0.15);
    background: rgba(234, 67, 53, 0.06);
}
.brand-modal-contact-item.btn-email:hover {
    background: rgba(234, 67, 53, 0.12);
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(234, 67, 53, 0.1);
}

.brand-modal-contact-item.btn-phone {
    color: #3B82F6;
    border-color: rgba(59, 130, 246, 0.15);
    background: rgba(59, 130, 246, 0.06);
}
.brand-modal-contact-item.btn-phone:hover {
    background: rgba(59, 130, 246, 0.12);
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(59, 130, 246, 0.1);
}

.brand-modal-contact-item.btn-website {
    color: #0f172a;
    border-color: rgba(15, 23, 42, 0.1);
    background: rgba(15, 23, 42, 0.04);
}
.brand-modal-contact-item.btn-website:hover {
    background: rgba(15, 23, 42, 0.08);
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(15, 23, 42, 0.08);
}

.brand-modal-btn {
    width: 100%;
    padding: 16px;
    border-radius: 16px;
    border: none;
    background: #0f172a;
    color: #ffffff;
    font-size: 16px;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
}

.brand-modal-btn:hover {
    background: #1e293b;
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.2);
}

.brand-modal-btn:hover svg {
    transform: translateX(4px);
}

.brand-footer {
    position: relative;
    padding: 50px 0;
    background: #ffffff;
    border-top: 1px solid #e2e8f0;
}

.brand-footer-container {
    max-width: 600px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.brand-footer .brand-logo-wrapper {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.08), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px auto;
    overflow: hidden;
    border: 2px solid #ffffff;
}

.brand-footer-logo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

#brand-footer-name {
    font-family: 'DM Sans', 'Inter', -apple-system, sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 1.3rem;
    letter-spacing: 0.12em;
    color: #1e293b;
    margin-bottom: 8px;
    text-align: center;
}

.brand-footer-tagline {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-size: 1.15rem;
    color: #64748b;
    margin-bottom: 12px;
    text-align: center;
    letter-spacing: 0.02em;
}

.brand-footer-message {
    font-family: 'DM Sans', 'Inter', sans-serif;
    font-size: 0.95rem;
    color: #475569;
    max-width: 480px;
    margin: 0 auto 16px auto;
    line-height: 1.6;
    font-weight: 400;
    text-align: center;
}

.brand-links-row {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 10px;
    margin-bottom: 10px;
}

.brand-contact-btn {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 1.5px solid #e2e8f0;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    background: transparent;
}

.brand-contact-btn:hover {
    border-color: #94a3b8;
    color: #0f172a;
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
}

.brand-contact-btn svg {
    width: 18px;
    height: 18px;
}

.brand-social-btn {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.brand-social-btn svg {
    width: 20px;
    height: 20px;
}

.brand-social-btn:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
}

/* Facebook styling */
.brand-social-facebook {
    background-color: rgba(24, 119, 242, 0.08);
    color: #1877F2;
}
.brand-social-facebook:hover {
    background-color: rgba(24, 119, 242, 0.15);
}

/* Instagram styling */
.brand-social-instagram {
    background-color: rgba(225, 48, 108, 0.08);
    color: #E1306C;
}
.brand-social-instagram:hover {
    background-color: rgba(225, 48, 108, 0.15);
}

/* WhatsApp styling */
.brand-social-whatsapp {
    background-color: rgba(37, 211, 102, 0.08);
    color: #25D366;
}
.brand-social-whatsapp:hover {
    background-color: rgba(37, 211, 102, 0.15);
}

/* YouTube styling */
.brand-social-youtube {
    background-color: rgba(255, 0, 0, 0.08);
    color: #FF0000;
}
.brand-social-youtube:hover {
    background-color: rgba(255, 0, 0, 0.15);
}

.site-footer#standard-footer-minimized {
    padding: 30px 0;
    background: #f8fafc;
}

/* --- Redesigned 2026 Quick Registration UI --- */

.guest-reg-gate {
    width: 100%;
    max-width: 500px;
    margin: 40px auto;
    padding: 0 20px;
    animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

.guest-reg-card {
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 32px;
    padding: 40px;
    box-shadow: 
        0 25px 50px -12px rgba(0, 0, 0, 0.08),
        0 0 0 1px rgba(255, 255, 255, 0.5) inset;
    position: relative;
    overflow: hidden;
}

.dark-mode .guest-reg-card {
    background: rgba(30, 41, 59, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.guest-reg-header {
    text-align: center;
    margin-bottom: 35px;
}

.guest-reg-icon {
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, var(--primary), #fbbf24);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    color: white;
    box-shadow: 0 10px 20px rgba(212, 175, 55, 0.3);
    transform: rotate(-3deg);
    transition: transform 0.3s ease;
}

.guest-reg-card:hover .guest-reg-icon {
    transform: rotate(0deg) scale(1.05);
}

.guest-reg-title {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    color: #1a2b4c;
    margin-bottom: 8px;
    font-weight: 700;
}

.dark-mode .guest-reg-title {
    color: #f8fafc;
}

.guest-reg-subtitle {
    color: #64748b;
    font-size: 0.95rem;
    line-height: 1.5;
}

.guest-reg-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Modern Input Group with Floating Labels */
.reg-input-group {
    position: relative;
    width: 100%;
}

.reg-input-group label {
    position: absolute;
    left: 48px;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    font-size: 0.95rem;
    pointer-events: none;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.reg-input-group input {
    width: 100%;
    padding: 16px 16px 16px 48px;
    background: rgba(255, 255, 255, 0.5);
    border: 1.5px solid rgba(0, 0, 0, 0.05);
    border-radius: 16px;
    font-size: 1rem;
    color: #1e293b;
    transition: all 0.2s ease;
}

.dark-mode .reg-input-group input {
    background: rgba(15, 23, 42, 0.3);
    border-color: rgba(255, 255, 255, 0.05);
    color: #f1f5f9;
}

.reg-input-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: #6366f1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.reg-input-group input:focus {
    outline: none;
    background: #fff;
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(212, 175, 55, 0.15);
}

.dark-mode .reg-input-group input:focus {
    background: rgba(15, 23, 42, 0.6);
}

.reg-input-group input:focus + label,
.reg-input-group input:not(:placeholder-shown) + label {
    top: 0;
    left: 12px;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--primary);
    background: white;
    padding: 0 8px;
    border-radius: 4px;
    transform: translateY(-50%) scale(0.9);
}

.dark-mode .reg-input-group input:focus + label,
.dark-mode .reg-input-group input:not(:placeholder-shown) + label {
    background: #1e293b;
}

.field-error {
    position: absolute;
    bottom: -18px;
    left: 12px;
    color: #ef4444;
    font-size: 0.8rem;
    height: 16px;
    margin: 0;
}

.guest-reg-submit {
    margin-top: 10px;
    background: linear-gradient(135deg, #4f46e5, #818cf8);
    color: white;
    border: none;
    padding: 18px;
    border-radius: 16px;
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 15px 30px -10px rgba(79, 70, 229, 0.4);
}

.guest-reg-submit:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 20px 35px -10px rgba(79, 70, 229, 0.6);
    filter: brightness(1.1);
}

.guest-reg-submit:active:not(:disabled) {
    transform: translateY(0);
}

.guest-reg-submit:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

.guest-reg-privacy {
    text-align: center;
    font-size: 0.8rem;
    color: #94a3b8;
    margin-top: 25px;
    line-height: 1.5;
}

.guest-reg-privacy strong {
    color: #64748b;
}

/* Response for Mobile */
@media (max-width: 480px) {
    .guest-reg-card {
        padding: 30px 20px;
        border-radius: 24px;
    }
    .guest-reg-title {
        font-size: 1.6rem;
    }
}

/* Fix multiple layers in hero section caused by glass-card padding/background on mobile */
@media (max-width: 1023px) {
    .event-page .event-hero-card.glass-card {
        padding: 0 !important;
        background: #040816 !important;
        border: none !important;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3) !important;
    }
}

/* ============================================
   DOWNLOAD PROGRESS MODAL
   ============================================ */

.dl-modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 99990;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.5);
    backdrop-filter: blur(8px);
    padding: 24px;
    pointer-events: auto;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.dl-modal-card {
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.02);
    padding: 36px 32px 28px;
    width: 340px;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    pointer-events: auto;
    position: relative;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    transform-origin: center;
    animation: dlModalIn 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

@keyframes dlModalIn {
    from { opacity: 0; transform: scale(0.92) translateY(16px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

.dl-modal-minimize-btn {
    position: absolute;
    top: 18px;
    right: 18px;
    background: #f1f5f9;
    border: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: #475569;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    z-index: 10;
}

.dl-modal-minimize-btn:hover {
    background: #e2e8f0;
    color: #0f172a;
}

.dl-modal-icon-wrap {
    width: 72px;
    height: 72px;
    position: relative;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dl-modal-download-icon {
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(234, 179, 8, 0.08);
    border-radius: 50%;
    color: #ca8a04;
    animation: dlIconPulse 2s infinite ease-in-out;
}

.dl-modal-download-icon svg {
    width: 32px;
    height: 32px;
}

@keyframes dlIconPulse {
    0%, 100% { transform: translateY(0); opacity: 0.9; }
    50% { transform: translateY(-4px); opacity: 1; }
}

.dl-modal-spinner {
    width: 72px;
    height: 72px;
    display: none; /* Hide circular spinner in expanded state to avoid multiple progress bars */
}

.dl-spinner-svg {
    width: 72px;
    height: 72px;
    transform: rotate(-90deg);
}

.dl-spinner-track {
    stroke: #e2e8f0;
}

.dl-spinner-arc {
    stroke: #eab308;
    stroke-linecap: round;
    transition: stroke-dashoffset 0.25s linear;
    animation: dlArcSpin 1.4s linear infinite;
}

@keyframes dlArcSpin {
    0%   { stroke-dashoffset: 138.2; stroke-dasharray: 40 98.2; }
    50%  { stroke-dashoffset: 20;    stroke-dasharray: 100 38.2; }
    100% { stroke-dashoffset: -120;  stroke-dasharray: 40 98.2; }
}

.dl-spinner-arc.deterministic {
    animation: none;
    stroke-dasharray: 138.2;
}

.dl-modal-done-icon {
    position: absolute;
    inset: 0;
    width: 72px;
    height: 72px;
    color: #16a34a;
}

.dl-modal-done-icon svg {
    width: 72px;
    height: 72px;
}

.dl-modal-done-icon circle {
    stroke: #bbf7d0;
}

.dl-modal-done-icon polyline {
    stroke: #16a34a;
    stroke-dasharray: 30;
    stroke-dashoffset: 30;
    animation: dlCheckDraw 0.4s ease-out 0.1s forwards;
}

@keyframes dlCheckDraw {
    to { stroke-dashoffset: 0; }
}

.dl-modal-title {
    font-family: 'Inter', sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    color: #0f172a;
    text-align: center;
    margin: 0;
}

.dl-modal-phase {
    font-size: 0.9rem;
    color: #64748b;
    text-align: center;
    min-height: 1.2em;
    margin: 0;
    transition: color 0.2s ease;
}

.dl-modal-bar-wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.dl-modal-bar {
    width: 100%;
    height: 6px;
    background: #e2e8f0;
    border-radius: 99px;
    overflow: hidden;
}

.dl-modal-bar-fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, #eab308, #ca8a04);
    border-radius: 99px;
    transition: width 0.3s ease;
}

.dl-modal-bar-fill.indeterminate {
    width: 40%;
    animation: dlBarIndeterminate 1.5s ease-in-out infinite;
}

@keyframes dlBarIndeterminate {
    0%   { margin-left: -40%; }
    100% { margin-left: 100%; }
}

.dl-modal-counter {
    font-size: 0.8rem;
    font-weight: 600;
    color: #94a3b8;
    letter-spacing: 0.04em;
    min-height: 1em;
}

.dl-modal-close-btn {
    margin-top: 4px;
    padding: 11px 36px;
    background: #1e293b;
    color: #ffffff;
    border: none;
    border-radius: 50px;
    font-size: 0.92rem;
    font-weight: 600;
    cursor: pointer;
    letter-spacing: 0.04em;
    transition: background 0.2s ease, transform 0.15s ease;
}

.dl-modal-close-btn:hover {
    background: #0f172a;
    transform: translateY(-1px);
}

.dl-modal-cancel-btn {
    margin-top: 4px;
    padding: 11px 36px;
    background: transparent;
    color: #ef4444;
    border: 1.5px solid #ef4444;
    border-radius: 50px;
    font-size: 0.92rem;
    font-weight: 600;
    cursor: pointer;
    letter-spacing: 0.04em;
    transition: background 0.2s ease, transform 0.15s ease, color 0.2s ease;
}

.dl-modal-cancel-btn:hover {
    background: #fef2f2;
    color: #dc2626;
    transform: translateY(-1px);
}

/* Minimized States */
.dl-modal-backdrop.minimized {
    position: fixed;
    top: auto;
    right: auto;
    bottom: 24px;
    left: 24px;
    width: auto;
    height: auto;
    background: transparent !important;
    backdrop-filter: none !important;
    pointer-events: none;
}

.dl-modal-backdrop.minimized .dl-modal-card {
    width: 60px;
    height: 60px;
    max-width: 60px;
    border-radius: 50%;
    padding: 0;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14), 0 0 0 1px rgba(0, 0, 0, 0.06);
    gap: 0;
    overflow: hidden;
    transform-origin: bottom left;
    animation: none;
}

.dl-modal-backdrop.minimized .dl-modal-card:hover {
    transform: scale(1.08);
}

.dl-modal-backdrop.minimized .dl-modal-title,
.dl-modal-backdrop.minimized .dl-modal-phase,
.dl-modal-backdrop.minimized .dl-modal-bar-wrap,
.dl-modal-backdrop.minimized .dl-modal-close-btn,
.dl-modal-backdrop.minimized .dl-modal-cancel-btn,
.dl-modal-backdrop.minimized .dl-modal-minimize-btn,
.dl-modal-backdrop.minimized #dl-modal-wm-notice,
.dl-modal-backdrop.minimized .dl-modal-download-icon {
    display: none !important;
}

.dl-modal-backdrop.minimized .dl-modal-icon-wrap {
    margin-bottom: 0;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dl-modal-backdrop.minimized .dl-modal-spinner {
    display: block !important; /* show circular spinner when minimized */
}

.dl-modal-backdrop.minimized .dl-modal-spinner,
.dl-modal-backdrop.minimized .dl-spinner-svg,
.dl-modal-backdrop.minimized .dl-modal-done-icon,
.dl-modal-backdrop.minimized .dl-modal-done-icon svg {
    width: 60px;
    height: 60px;
}

.dl-modal-minimized-pct {
    position: absolute;
    font-size: 10px;
    font-weight: 700;
    color: #1e293b;
    display: none;
    z-index: 5;
    pointer-events: none;
}

.dl-modal-backdrop.minimized .dl-modal-minimized-pct {
    display: block;
}

@media (max-width: 480px) {
    .dl-modal-card {
        padding: 32px 24px 28px;
        border-radius: 20px;
    }
}

/* ── Swiper Bottom Floating Toolbar for Events ──────────────────────────── */
.swiper-bottom-controls-wrapper {
  position: absolute !important;
  bottom: 28px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 10003 !important;
  pointer-events: none !important;
}

.swiper-bottom-controls {
  display: flex !important;
  align-items: center !important;
  gap: 2px !important;
  background: #181818 !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
  padding: 6px 10px !important;
  border-radius: 14px !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.9), 0 4px 12px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.06) !important;
  pointer-events: auto !important;
}

.swiper-control-btn {
  background: transparent !important;
  border: none !important;
  color: rgba(255,255,255,0.6) !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 9px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: background 0.15s ease, color 0.15s ease !important;
  flex-shrink: 0 !important;
}
.swiper-control-btn:hover {
  color: #FFFFFF !important;
  background: rgba(255,255,255,0.1) !important;
}
.swiper-control-btn svg {
  width: 20px !important;
  height: 20px !important;
  display: block !important;
}

/* Text buttons: Fit / Reset */
.swiper-control-btn.text-btn {
  width: auto !important;
  padding: 0 14px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  border-radius: 9px !important;
}

/* Separator — vertical line */
.control-sep {
  width: 1px !important;
  height: 22px !important;
  background: rgba(255,255,255,0.12) !important;
  display: block !important;
  flex-shrink: 0 !important;
  margin: 0 6px !important;
}

/* Responsive mobile adjustments for lightbox toolbar */
@media (max-width: 768px) {
  .swiper-bottom-controls-wrapper {
    bottom: 86px !important;
    width: auto !important;
  }
  .swiper-bottom-controls {
    gap: 6px !important;
    padding: 6px 10px !important;
    width: auto !important;
    justify-content: center !important;
  }
  /* Hide zoom/fullscreen controls on mobile to prevent clutter and overlap */
  .swiper-bottom-controls .swiper-control-btn:nth-child(-n+4),
  .swiper-bottom-controls .control-sep:first-of-type {
    display: none !important;
  }
}

/* ── Floating Go Up Button ── */
.go-up-btn {
  position: fixed !important;
  bottom: 30px !important;
  right: 30px !important;
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  border: 1px solid rgba(201, 169, 110, 0.3) !important; /* Gold/bronze accent border */
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1) !important;
  color: #1a1a1a !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  z-index: 999 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(15px) scale(0.9) !important;
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s, background-color 0.2s, border-color 0.2s, bottom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

.go-up-btn.show {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) scale(1) !important;
}

.go-up-btn:hover {
  background: #ffffff !important;
  border-color: rgba(201, 169, 110, 0.8) !important;
  transform: translateY(-3px) scale(1.05) !important;
  box-shadow: 0 6px 24px rgba(201, 169, 110, 0.25) !important;
  color: #c9a96e !important;
}

.go-up-btn svg {
  width: 20px !important;
  height: 20px !important;
  stroke-width: 2.5 !important;
  transition: transform 0.2s ease !important;
}

.go-up-btn:hover svg {
  transform: translateY(-2px) !important;
}

/* Shift upwards when selection bar is active */
.go-up-btn.shift-up {
  bottom: 100px !important;
}

@media (max-width: 768px) {
  .go-up-btn {
    bottom: 24px !important;
    right: 24px !important;
    width: 42px !important;
    height: 42px !important;
  }
  .go-up-btn.shift-up {
    bottom: 84px !important;
  }
}

/* Gallery Pagination Styling (Creative Redesign with Go to Page) */
.gallery-pagination {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 40px;
  margin-bottom: 24px;
  width: 100%;
}

.gallery-pagination .pag-nav-group {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  padding: 8px 14px;
  border-radius: 50px;
  border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.1));
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
}

.gallery-pagination .pag-numbers {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}

.gallery-pagination .pag-btn {
  padding: 8px 16px !important;
  border-radius: 50px !important;
  background: rgba(255, 255, 255, 0.05) !important;
  color: var(--text-primary, #ffffff) !important;
  border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.1)) !important;
  font-size: 14px !important;
  cursor: pointer !important;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  font-weight: 500 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
}

.gallery-pagination .pag-btn:hover:not(:disabled) {
  background: var(--primary, #c9a96e) !important;
  color: #fff !important;
  border-color: var(--primary, #c9a96e) !important;
  box-shadow: 0 4px 15px rgba(201, 169, 110, 0.35) !important;
  transform: translateY(-2px) !important;
}

.gallery-pagination .pag-btn.active {
  background: var(--primary, #c9a96e) !important;
  color: #fff !important;
  border-color: var(--primary, #c9a96e) !important;
  font-weight: 600 !important;
  box-shadow: 0 4px 15px rgba(201, 169, 110, 0.35) !important;
}

.gallery-pagination .pag-btn.disabled,
.gallery-pagination .pag-btn:disabled {
  opacity: 0.35 !important;
  cursor: not-allowed !important;
  background: rgba(255, 255, 255, 0.02) !important;
  border-color: rgba(255, 255, 255, 0.05) !important;
  color: var(--text-muted, rgba(255, 255, 255, 0.4)) !important;
  transform: none !important;
  box-shadow: none !important;
}

.gallery-pagination .pag-dots {
  color: var(--text-muted, rgba(255, 255, 255, 0.4));
  font-size: 14px;
  padding: 0 4px;
  user-select: none;
}

/* Event Go To Page Section */
.gallery-pagination .pag-goto-container {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
  padding: 6px 14px;
  border-radius: 50px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  font-size: 13px;
  color: var(--text-secondary, rgba(255, 255, 255, 0.7));
}

.gallery-pagination .pag-goto-label {
  font-weight: 500;
  white-space: nowrap;
  letter-spacing: 0.2px;
}

.gallery-pagination .pag-goto-input-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
}

.gallery-pagination .pag-goto-input {
  width: 52px;
  height: 32px;
  background: rgba(255, 255, 255, 0.08);
  border: 1.5px solid var(--glass-border, rgba(255, 255, 255, 0.15));
  border-radius: 8px;
  text-align: center;
  font-weight: 600;
  font-size: 13px;
  color: #ffffff;
  outline: none;
  transition: all 0.2s ease;
  -moz-appearance: textfield;
  appearance: textfield;
}
.gallery-pagination .pag-goto-input::-webkit-outer-spin-button,
.gallery-pagination .pag-goto-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.gallery-pagination .pag-goto-input:focus {
  border-color: var(--primary, #c9a96e);
  box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.25);
  background: rgba(255, 255, 255, 0.12);
}

.gallery-pagination .pag-goto-total {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-muted, rgba(255, 255, 255, 0.4));
  user-select: none;
  white-space: nowrap;
}

.gallery-pagination .pag-goto-btn {
  height: 32px;
  padding: 0 14px;
  border-radius: 8px;
  background: var(--primary, #c9a96e);
  color: #ffffff;
  border: none;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 10px rgba(201, 169, 110, 0.25);
}
.gallery-pagination .pag-goto-btn:hover {
  background: #d8b87c;
  box-shadow: 0 4px 15px rgba(201, 169, 110, 0.4);
  transform: translateY(-1px);
}
.gallery-pagination .pag-goto-btn:active {
  transform: translateY(0);
}
.gallery-pagination .pag-goto-btn svg {
  transition: transform 0.2s ease;
}
.gallery-pagination .pag-goto-btn:hover svg {
  transform: translateX(2px);
}

/* Event Light Mode overrides for pagination */
body.event-page:not(.dark) .gallery-pagination .pag-nav-group,
body.event-page:not(.dark) .gallery-pagination .pag-goto-container {
  background: rgba(255, 255, 255, 0.85);
  border-color: rgba(0, 0, 0, 0.1);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}
body.event-page:not(.dark) .gallery-pagination .pag-btn {
  background: rgba(0, 0, 0, 0.04) !important;
  color: #1e293b !important;
  border-color: rgba(0, 0, 0, 0.08) !important;
}
body.event-page:not(.dark) .gallery-pagination .pag-btn.active {
  background: var(--primary, #c9a96e) !important;
  color: #ffffff !important;
}
body.event-page:not(.dark) .gallery-pagination .pag-goto-container {
  color: #334155;
}
body.event-page:not(.dark) .gallery-pagination .pag-goto-input {
  background: #ffffff;
  border-color: rgba(0, 0, 0, 0.15);
  color: #0f172a;
}

@media (max-width: 600px) {
  .gallery-pagination {
    margin-top: 24px;
    margin-bottom: 16px;
    gap: 12px;
  }
  .gallery-pagination .pag-nav-group {
    padding: 6px 10px;
    gap: 6px;
  }
  .gallery-pagination .pag-btn {
    padding: 6px 10px !important;
    font-size: 12px !important;
  }
  .gallery-pagination .pag-goto-container {
    padding: 5px 12px;
  }
  .gallery-pagination .pag-goto-input {
    width: 44px;
    height: 28px;
    font-size: 12px;
  }
  .gallery-pagination .pag-goto-btn {
    height: 28px;
    padding: 0 10px;
    font-size: 12px;
  }
}

/* ================================================================
   CURATION TOOLBAR & SELECTION BAR PORT (EXACT REPLICA)
   ================================================================ */
.mg-status-row {
  /* Exact variables from master gallery */
  --bg:          #FFFFFF;
  --surface:     #FFFFFF;
  --border:      rgba(28, 25, 23, 0.06);
  --border-md:   rgba(28, 25, 23, 0.12);
  --text-primary:#1C1917;
  --text-secondary:#6B6560;
  --text-muted:  #A39E99;
  --accent:      #C9A96E;
  --accent-dark: #A8864E;
  --accent-bg:   rgba(201,169,110,0.10);
  --green:       #3DAA72;
  --red:         #E05252;
  --blue:        #4A7FBD;
  --shadow-sm:   0 1px 4px rgba(0,0,0,.03);
  --shadow-md:   0 4px 20px rgba(0,0,0,.06);
  --shadow-lg:   0 12px 40px rgba(0,0,0,.09);
  --radius:      8px;
  --radius-lg:   16px;
  --ease:        cubic-bezier(.4,0,.2,1);

  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  background: var(--surface) !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: 1px solid var(--border) !important;
  border-radius: 0 !important;
  padding: 16px 16px !important;
  font-family: 'DM Sans', sans-serif !important;
  /* Sticky header behaviour */
  position: sticky !important;
  top: 0 !important;
  z-index: 40 !important;
  width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  box-shadow: none !important;
}

.ph-summary-bar {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  flex: 1 !important;
}

.ph-desktop-filters {
  display: flex !important;
  align-items: center !important;
  background: rgba(28, 25, 23, 0.04) !important;
  padding: 4px !important;
  border-radius: 100px !important;
  gap: 2px !important;
}

.ph-filter-btn {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  cursor: pointer !important;
  padding: 8px 16px !important;
  border-radius: 100px !important;
  transition: all 0.25s var(--ease) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: var(--text-secondary) !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ph-filter-btn:hover {
  color: var(--text-primary) !important;
  background: rgba(28, 25, 23, 0.04) !important;
}

.ph-filter-btn.active {
  background: var(--surface) !important;
  color: var(--text-primary) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}

.ph-count-pill {
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  padding: 2px 6px !important;
  border-radius: 10px !important;
  background: rgba(28, 25, 23, 0.06) !important;
  color: var(--text-secondary) !important;
  margin-left: 2px !important;
  display: inline-block !important;
  line-height: 1.2 !important;
}

.ph-filter-btn.active .ph-count-pill {
  background: rgba(28, 25, 23, 0.1) !important;
  color: var(--text-primary) !important;
}

.ph-sort-container {
  display: flex !important;
  align-items: center !important;
  gap: 2px !important;
  background: rgba(28, 25, 23, 0.05) !important;
  border: 1px solid rgba(28, 25, 23, 0.08) !important;
  padding: 3px !important;
  border-radius: 100px !important;
  margin-left: auto !important;
}

.ph-custom-dropdown {
  position: relative !important;
  display: inline-block !important;
}

.ph-dropdown-trigger {
  background: transparent !important;
  border: none !important;
  outline: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: #44403c !important;
  cursor: pointer !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  padding: 6px 12px 6px 14px !important;
  border-radius: 100px !important;
  transition: all 0.2s var(--ease) !important;
}

.ph-dropdown-trigger:hover {
  color: #0c0a09 !important;
}

.ph-dropdown-trigger svg {
  transition: transform 0.2s var(--ease) !important;
  flex-shrink: 0 !important;
}

.ph-custom-dropdown.open .ph-dropdown-trigger svg {
  transform: rotate(180deg) !important;
}

.ph-dropdown-menu {
  position: absolute !important;
  top: calc(100% + 8px) !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(8px) !important;
  min-width: 140px !important;
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
  box-shadow: var(--shadow-lg) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: all 0.25s var(--ease) !important;
  z-index: 150 !important;
  overflow: hidden !important;
}

.ph-dropdown-menu.open {
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateX(-50%) translateY(0) !important;
}

.ph-dropdown-item {
  padding: 10px 16px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  color: var(--text-secondary) !important;
  cursor: pointer !important;
  transition: all 0.15s var(--ease) !important;
  white-space: nowrap !important;
  text-align: left !important;
}

.ph-dropdown-item:hover {
  background: rgba(28, 25, 23, 0.04) !important;
  color: var(--text-primary) !important;
}

.ph-dropdown-item.active {
  background: var(--accent-bg) !important;
  color: var(--accent-dark) !important;
  font-weight: 700 !important;
}

.ph-sort-dir-btn {
  background: var(--surface) !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  color: #44403c !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all .2s var(--ease) !important;
  padding: 0 !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.06) !important;
}

.ph-sort-dir-btn:hover {
  background: var(--surface) !important;
  color: #0c0a09 !important;
  transform: scale(1.05) !important;
}

.ph-sort-dir-btn svg {
  width: 14px !important;
  height: 14px !important;
  display: block !important;
}

.mg-toolbar-actions {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.mg-unlock-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 10px 22px !important;
  border-radius: 100px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: all .25s var(--ease) !important;
  white-space: nowrap !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.04) !important;
}

.mg-unlock-btn svg {
  width: 14px !important;
  height: 14px !important;
  transition: inherit !important;
}

#download-all-btn {
  border: 1.5px solid #cbd5e1 !important;
  color: #334155 !important;
  background: #fdfdfd !important;
}

#download-all-btn:hover {
  background: #f1f5f9 !important;
  color: #0f172a !important;
  border-color: #94a3b8 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05) !important;
}

/* Floating Bottom Selection Bar */
.selection-bar {
  display: flex !important;
  position: fixed !important;
  bottom: 32px !important;
  right: 32px !important;
  z-index: 99999 !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(80px) !important;
  transition: opacity 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), visibility 0.35s !important;
  
  align-items: center !important;
  background: #d4af37 !important;
  color: white !important;
  padding: 8px 10px 8px 24px !important;
  border-radius: 50px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  gap: 16px !important;
  box-shadow: 0 10px 30px rgba(212, 175, 55, 0.35), 0 4px 12px rgba(0, 0, 0, 0.1) !important;
  font-family: 'DM Sans', sans-serif !important;
  white-space: nowrap !important;
  flex-wrap: nowrap !important;
}

.selection-bar.visible { 
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

.selection-bar-count {
  font-size: 18px !important;
  font-weight: 700 !important;
}

.selection-bar-btn {
  background: rgba(255, 255, 255, 0.15) !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  color: white !important;
  padding: 8px 20px !important;
  border-radius: 50px !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  font-family: 'DM Sans', sans-serif !important;
}

.selection-bar-btn:hover {
  background: rgba(255, 255, 255, 0.25) !important;
}

.selection-bar-btn.primary {
  background: white !important;
  color: #d4af37 !important;
  font-weight: 700 !important;
  border-color: white !important;
}

.selection-bar-btn.primary:hover {
  background: #f8f8f8 !important;
}

/* Responsive styles */
@media (max-width: 768px) {
  .mg-status-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px 8px !important;
    top: 0 !important;
    padding: 12px 16px !important;
    border-radius: 0 !important;
    margin-top: 0 !important;
    width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
  }
  
  .ph-summary-bar {
    grid-column: 1 / 2 !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    background: rgba(28, 25, 23, 0.04) !important;
    padding: 4px !important;
    border-radius: 100px !important;
    gap: 4px !important;
  }

  .ph-desktop-filters {
    background: transparent !important;
    padding: 0 !important;
    width: 100% !important;
    gap: 4px !important;
  }

  .ph-summary-bar .ph-filter-btn {
    flex: 1 !important;
    justify-content: center !important;
    padding: 6px 8px !important;
    font-size: 0.72rem !important;
  }

  .ph-sort-container {
    grid-column: 2 / 3 !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    background: rgba(28, 25, 23, 0.05) !important;
    border: 1px solid rgba(28, 25, 23, 0.08) !important;
    padding: 3px !important;
    border-radius: 100px !important;
    margin-left: 0 !important;
    gap: 4px !important;
  }

  .ph-custom-dropdown {
    flex: 1 !important;
  }

  .ph-dropdown-trigger {
    width: 100% !important;
    display: flex !important;
    justify-content: space-between !important;
    background: transparent !important;
    border: none !important;
    padding: 6px 12px 6px 14px !important;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    color: var(--text-primary) !important;
  }

  .ph-sort-dir-btn {
    background: var(--surface) !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
    color: #44403c !important;
  }

  .mg-toolbar-actions {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    display: flex !important;
    gap: 8px !important;
  }

  .mg-toolbar-actions .mg-unlock-btn {
    flex: 1 !important;
    padding: 10px 14px !important;
    font-size: 0.75rem !important;
    border-radius: 100px !important;
    height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}

@media (max-width: 500px) {
  .selection-bar {
    left: auto !important;
    right: 16px !important;
    bottom: 16px !important;
    transform: translateY(80px) !important;
    padding: 6px 6px 6px 16px !important;
    border-radius: 40px !important;
    font-size: 13.5px !important;
    gap: 8px !important;
    width: max-content !important;
    max-width: calc(100% - 32px) !important;
  }
  
  .selection-bar.visible {
    transform: translateY(0) !important;
  }
  
  .selection-bar-count {
    font-size: 15px !important;
  }
  
  .selection-bar-btn {
    padding: 6px 14px !important;
    font-size: 12px !important;
  }
}

/* Cohesive Side-by-Side Action Buttons */
.action-buttons {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 24px !important;
  flex-wrap: nowrap !important;
}

.action-btn.notify-btn {
  background: #ffffff !important;
  color: #1c1917 !important;
  border: 1.5px solid rgba(28, 25, 23, 0.08) !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.04) !important;
}

.action-btn.notify-btn:hover {
  background: #f5f5f4 !important;
  border-color: rgba(28, 25, 23, 0.15) !important;
}

.action-btn.notify-btn svg {
  color: #eab308 !important; /* yellow bell */
  fill: none !important;
}

.action-btn.share-btn {
  background: rgba(28, 25, 23, 0.04) !important;
  color: #1c1917 !important;
  border: 1.5px solid rgba(28, 25, 23, 0.06) !important;
  font-weight: 600 !important;
}

.action-btn.share-btn:hover {
  background: rgba(28, 25, 23, 0.08) !important;
  border-color: rgba(28, 25, 23, 0.12) !important;
}

.action-btn.share-btn svg {
  color: #25D366 !important; /* WhatsApp green */
}

@media (max-width: 480px) {
  .action-buttons {
    gap: 8px !important;
  }
  .action-btn.notify-btn,
  .action-btn.share-btn {
    padding: 8px 14px !important;
    font-size: 0.8rem !important;
  }
  .action-btn.notify-btn svg,
  .action-btn.share-btn svg {
    width: 14px !important;
    height: 14px !important;
  }
}

/* Tighter Gaps / Space Optimization for Results Section */
.results-section {
  margin-top: 15px !important;
  padding-top: 15px !important;
}

.results-header {
  margin-top: 0 !important;
  margin-bottom: 12px !important;
}

.results-header h2 {
  font-size: 1.6rem !important;
  margin-top: 0 !important;
  margin-bottom: 4px !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
}

.results-count {
  margin-top: 2px !important;
  margin-bottom: 0 !important;
  font-size: 0.9rem !important;
}

.action-buttons {
  margin-top: 12px !important;
}

.mobile-header-info {
  margin: 8px auto 4px auto !important;
}

@media (max-width: 600px) {
  .results-section {
    margin-top: 10px !important;
    padding-top: 10px !important;
  }
  .results-header {
    margin-bottom: 10px !important;
  }
  .results-header h2 {
    font-size: 1.4rem !important;
  }
  .results-count {
    font-size: 0.85rem !important;
  }
  .action-buttons {
    margin-top: 10px !important;
  }
}

/* Responsive Button Text Spans */
.btn-text-mobile {
  display: none !important;
}
.btn-text-desktop {
  display: inline !important;
}

/* Try Again / Try Another Photo (Orangy styling) */
.action-btn.try-btn {
  background: rgba(249, 115, 22, 0.05) !important;
  color: #ea580c !important;
  border: 1.5px solid rgba(249, 115, 22, 0.15) !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 6px rgba(249, 115, 22, 0.04) !important;
}

.action-btn.try-btn:hover {
  background: rgba(249, 115, 22, 0.1) !important;
  border-color: rgba(249, 115, 22, 0.25) !important;
}

.action-btn.try-btn svg {
  color: #ea580c !important;
}

@media (max-width: 480px) {
  .btn-text-desktop {
    display: none !important;
  }
  .btn-text-mobile {
    display: inline !important;
  }
  .action-btn.try-btn {
    padding: 8px 14px !important;
    font-size: 0.8rem !important;
  }
  .action-btn.try-btn svg {
    width: 14px !important;
    height: 14px !important;
  }
}


/* =======================================================
   LANDING PAGE REDESIGN — 2026
   New sections & design system additions from audit report
   ======================================================= */

/* ---- Landing-page specific tokens ---- */
:root {
    --lp-accent: #7C5CFC;
    --lp-accent-soft: #A689FF;
    --lp-accent-glow: rgba(124, 92, 252, 0.18);
    --lp-accent-border: rgba(124, 92, 252, 0.35);
    --lp-gold: #F5C842;
    --lp-success: #3EBB8E;
    --lp-danger: #FF5A5A;
    --lp-card: #13131F;
    --lp-surface: #0C0C14;
    --lp-border: rgba(255, 255, 255, 0.08);
}

/* ---- Eyebrow badge ---- */
.lp-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 14px;
    border-radius: 40px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: var(--lp-accent-glow);
    color: var(--lp-accent-soft);
    border: 1px solid var(--lp-accent-border);
    margin-bottom: 20px;
}

.lp-eyebrow--gold {
    background: rgba(245, 200, 66, 0.12);
    color: var(--lp-gold);
    border-color: rgba(245, 200, 66, 0.3);
}

.lp-eyebrow--green {
    background: rgba(62, 187, 142, 0.12);
    color: var(--lp-success);
    border-color: rgba(62, 187, 142, 0.3);
}

/* ============================================
   HERO SECTION — 2-COLUMN REDESIGN
   ============================================ */
.hero-redesign {
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding-top: 80px;
    position: relative;
    overflow: hidden;
    z-index: 1;
    background-image: linear-gradient(160deg, rgba(2, 6, 23, 0.88) 0%, rgba(11, 11, 20, 0.97) 100%),
        url('/static/assets/index/hero_bg.webp');
    background-size: cover;
    background-position: center;
}

.hero-redesign::before {
    content: '';
    position: absolute;
    top: -10%;
    right: -5%;
    width: 60vw;
    height: 70vh;
    background: radial-gradient(ellipse at top right, rgba(124, 92, 252, 0.2) 0%, transparent 65%);
    pointer-events: none;
    z-index: 0;
}

.hero-redesign::after {
    content: '';
    position: absolute;
    bottom: 5%;
    left: -5%;
    width: 45vw;
    height: 55vh;
    background: radial-gradient(ellipse at bottom left, rgba(212, 175, 55, 0.1) 0%, transparent 65%);
    pointer-events: none;
    z-index: 0;
}

.hero-two-col {
    display: grid;
    grid-template-columns: 55fr 45fr;
    gap: 64px;
    align-items: center;
    position: relative;
    z-index: 2;
    padding: 60px 0 80px;
}

.hero-left {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}

.hero-proof-line {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 28px;
    font-size: 0.85rem;
    color: var(--text-secondary);
}

.hero-proof-dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--lp-success);
    box-shadow: 0 0 0 0 rgba(62, 187, 142, 0.4);
    animation: proofPulse 2s infinite;
    flex-shrink: 0;
}

@keyframes proofPulse {
    0% { box-shadow: 0 0 0 0 rgba(62, 187, 142, 0.5); }
    70% { box-shadow: 0 0 0 7px rgba(62, 187, 142, 0); }
    100% { box-shadow: 0 0 0 0 rgba(62, 187, 142, 0); }
}

.hero-new-title {
    font-size: clamp(2.8rem, 5.5vw, 4.2rem);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.03em;
    color: #fff;
    margin: 0 0 20px;
}

.hero-new-title .accent-violet {
    background: linear-gradient(135deg, var(--lp-accent) 0%, var(--lp-accent-soft) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.hero-new-sub {
    font-size: 1.15rem;
    color: var(--text-secondary);
    line-height: 1.75;
    margin-bottom: 36px;
    max-width: 480px;
}

.hero-cta-row {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 32px;
}

.btn-violet {
    background: linear-gradient(135deg, var(--lp-accent), #6344e8);
    color: #fff;
    font-weight: 600;
    box-shadow: 0 4px 20px rgba(124, 92, 252, 0.4);
    border: none;
}

.btn-violet:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 32px rgba(124, 92, 252, 0.55);
    color: #fff;
}

.btn-violet::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
    transition: left 0.6s ease;
}

.btn-violet:hover::after { left: 100%; }

.hero-trust-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.hero-trust-pill {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--text-secondary);
    font-weight: 500;
}

.hero-trust-pill svg { color: var(--lp-success); flex-shrink: 0; }

/* Hero Right: Product Mockup Card */
.hero-right {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.hero-mockup-wrap {
    position: relative;
    width: 100%;
    max-width: 400px;
}

.hero-phone-card {
    width: 100%;
    background: rgba(18, 18, 30, 0.9);
    border: 1px solid rgba(124, 92, 252, 0.25);
    border-radius: 28px;
    padding: 28px 24px;
    box-shadow: 0 0 0 1px rgba(124, 92, 252, 0.1), 0 40px 80px rgba(0, 0, 0, 0.6), 0 0 80px rgba(124, 92, 252, 0.12);
    position: relative;
    overflow: hidden;
    animation: heroCardFloat 6s ease-in-out infinite;
}

@keyframes heroCardFloat {
    0%, 100% { transform: translateY(0px) rotate(-0.5deg); }
    50% { transform: translateY(-12px) rotate(0.5deg); }
}

.hero-phone-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--lp-accent), var(--lp-accent-soft), var(--lp-accent));
    background-size: 200% auto;
    animation: gradientShineBar 3s linear infinite;
}

@keyframes gradientShineBar {
    0% { background-position: 0% center; }
    100% { background-position: 200% center; }
}

.mockup-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.mockup-topbar-logo {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    font-weight: 700;
    color: #fff;
}

.mockup-topbar-logo img {
    height: 20px;
    width: auto;
    border-radius: 4px;
}

.mockup-status {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.72rem;
    color: var(--lp-success);
    background: rgba(62, 187, 142, 0.1);
    padding: 3px 10px;
    border-radius: 20px;
    border: 1px solid rgba(62, 187, 142, 0.25);
}

.mockup-selfie-area {
    background: rgba(124, 92, 252, 0.08);
    border: 1.5px dashed rgba(124, 92, 252, 0.35);
    border-radius: 16px;
    padding: 24px 16px;
    text-align: center;
    margin-bottom: 20px;
    position: relative;
    overflow: hidden;
}

.mockup-face-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(124, 92, 252, 0.2), rgba(166, 137, 255, 0.15));
    border: 2px solid var(--lp-accent-border);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
    animation: faceScan 3s ease-in-out infinite;
}

@keyframes faceScan {
    0%, 100% { box-shadow: 0 0 0 0 rgba(124, 92, 252, 0.3); }
    50% { box-shadow: 0 0 0 12px rgba(124, 92, 252, 0); }
}

.mockup-selfie-text {
    font-size: 0.8rem;
    color: var(--lp-accent-soft);
    font-weight: 600;
    margin-bottom: 4px;
}

.mockup-selfie-sub {
    font-size: 0.7rem;
    color: var(--text-secondary);
}

.mockup-scan-line {
    position: absolute;
    left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--lp-accent), transparent);
    animation: scanMove 2s ease-in-out infinite;
    top: 30px;
}

@keyframes scanMove {
    0% { top: 16px; opacity: 0; }
    20% { opacity: 1; }
    80% { opacity: 1; }
    100% { top: calc(100% - 16px); opacity: 0; }
}

.mockup-results-label {
    font-size: 0.72rem;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 10px;
    font-weight: 600;
}

.mockup-photo-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}

.mockup-photo-thumb {
    aspect-ratio: 1;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(124, 92, 252, 0.15), rgba(166, 137, 255, 0.1));
    border: 1px solid rgba(124, 92, 252, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    animation: thumbFadeIn 0.5s ease forwards;
    opacity: 0;
}

.mockup-photo-thumb:nth-child(1) { animation-delay: 0.8s; }
.mockup-photo-thumb:nth-child(2) { animation-delay: 1.0s; }
.mockup-photo-thumb:nth-child(3) { animation-delay: 1.2s; }
.mockup-photo-thumb:nth-child(4) { animation-delay: 1.4s; }
.mockup-photo-thumb:nth-child(5) { animation-delay: 1.6s; }
.mockup-photo-thumb:nth-child(6) { animation-delay: 1.8s; }

@keyframes thumbFadeIn {
    to { opacity: 1; transform: scale(1); }
    from { opacity: 0; transform: scale(0.8); }
}

.hero-float-badge {
    position: absolute;
    background: rgba(18, 18, 30, 0.95);
    border: 1px solid rgba(62, 187, 142, 0.4);
    border-radius: 12px;
    padding: 10px 14px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    color: var(--lp-success);
    font-weight: 600;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    white-space: nowrap;
    animation: badgeBob 4s ease-in-out infinite;
    z-index: 10;
}

.hero-float-badge--match {
    bottom: -16px;
    right: -20px;
    animation-delay: 0.5s;
}

.hero-float-badge--speed {
    top: -16px;
    left: -20px;
    border-color: rgba(245, 200, 66, 0.4);
    color: var(--lp-gold);
}

@keyframes badgeBob {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-8px); }
}

@media (max-width: 900px) {
    .hero-two-col { grid-template-columns: 1fr; gap: 48px; text-align: center; }
    .hero-left { align-items: center; }
    .hero-new-sub { text-align: center; }
    .hero-trust-pills { justify-content: center; }
    .hero-cta-row { justify-content: center; }
    .hero-mockup-wrap { max-width: 340px; }
    .hero-float-badge--match { right: -8px; bottom: -8px; }
    .hero-float-badge--speed { left: -8px; top: -8px; }
}

@media (max-width: 480px) {
    .hero-new-title { font-size: 2.1rem; }
    .hero-phone-card { padding: 20px 16px; }
    .hero-float-badge { display: none; }
}

/* ============================================
   PROBLEM vs SOLUTION SECTION
   ============================================ */
.problem-section-v2 {
    padding: 80px 0;
    position: relative;
    overflow: hidden;
}

.problem-section-v2::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, rgba(124, 92, 252, 0.05) 0%, transparent 70%);
    pointer-events: none;
}

.problem-intro {
    text-align: center;
    margin-bottom: 56px;
    position: relative;
    z-index: 1;
}

.problem-intro-title {
    font-size: clamp(1.8rem, 3.5vw, 2.6rem);
    font-weight: 800;
    color: var(--text-primary);
    margin-bottom: 12px;
    letter-spacing: -0.02em;
    line-height: 1.15;
}

.problem-intro-subtitle {
    font-size: 1.05rem;
    color: var(--text-secondary);
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.7;
    font-style: italic;
}

.problem-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    position: relative;
    z-index: 1;
}

.problem-card {
    border-radius: 20px;
    padding: 36px 32px;
    position: relative;
    overflow: hidden;
}

.problem-card--old {
    background: rgba(255, 90, 90, 0.06);
    border: 1px solid rgba(255, 90, 90, 0.2);
}

.problem-card--new {
    background: rgba(62, 187, 142, 0.06);
    border: 1px solid rgba(62, 187, 142, 0.2);
}

.problem-card--old::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, rgba(255, 90, 90, 0.5), transparent);
}

.problem-card--new::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, rgba(62, 187, 142, 0.5), transparent);
}

.problem-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}

.problem-card-icon { font-size: 1.5rem; line-height: 1; }

.problem-card-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--text-primary);
}

.problem-card--old .problem-card-title { color: var(--lp-danger); }
.problem-card--new .problem-card-title { color: var(--lp-success); }

.problem-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.problem-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.95rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

.problem-list li .pi { flex-shrink: 0; font-size: 1rem; margin-top: 1px; }

@media (max-width: 700px) {
    .problem-two-col { grid-template-columns: 1fr; }
    .problem-card { padding: 28px 22px; }
}

/* ============================================
   TESTIMONIALS SECTION
   ============================================ */
.testimonials-section {
    padding: 80px 0;
    background: rgba(11, 11, 20, 0.6);
    border-top: 1px solid var(--lp-border);
    border-bottom: 1px solid var(--lp-border);
    position: relative;
    overflow: hidden;
}

.testimonials-section::before {
    content: '';
    position: absolute;
    top: -80px;
    left: 50%;
    transform: translateX(-50%);
    width: 600px;
    height: 300px;
    background: radial-gradient(ellipse at center, rgba(124, 92, 252, 0.07) 0%, transparent 70%);
    pointer-events: none;
}

.testimonials-header {
    text-align: center;
    margin-bottom: 52px;
    position: relative;
    z-index: 1;
}

.testimonials-title {
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: -0.02em;
    margin-bottom: 10px;
}

.testimonials-sub {
    font-size: 1rem;
    color: var(--text-secondary);
}

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    position: relative;
    z-index: 1;
}

.testimonial-card {
    background: rgba(18, 18, 30, 0.85);
    border: 1px solid var(--lp-border);
    border-radius: 20px;
    padding: 32px 28px;
    position: relative;
    overflow: hidden;
    transition: transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}

.testimonial-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.06), transparent);
}

.testimonial-card:hover {
    transform: translateY(-4px);
    border-color: var(--lp-accent-border);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4), 0 0 40px var(--lp-accent-glow);
}

.testimonial-stars {
    display: flex;
    gap: 3px;
    margin-bottom: 16px;
}

.testimonial-stars span { color: var(--lp-gold); font-size: 1.1rem; }

.testimonial-quote {
    font-size: 0.98rem;
    color: var(--text-primary);
    line-height: 1.7;
    margin-bottom: 24px;
    font-style: italic;
}

.testimonial-quote::before {
    content: '"';
    color: var(--lp-accent-soft);
    font-size: 1.8rem;
    line-height: 0;
    vertical-align: -0.4em;
    margin-right: 2px;
    font-style: normal;
}

.testimonial-author {
    display: flex;
    align-items: center;
    gap: 12px;
}

.testimonial-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--lp-accent), var(--lp-accent-soft));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}

.testimonial-name {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-primary);
}

.testimonial-role {
    font-size: 0.78rem;
    color: var(--text-secondary);
    margin-top: 1px;
}

@media (min-width: 601px) and (max-width: 900px) {
    .testimonials-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .testimonials-grid { grid-template-columns: 1fr; gap: 18px; }
}

/* ============================================
   FINAL CTA SECTION
   ============================================ */
.final-cta-section {
    position: relative;
    padding: 120px 0;
    overflow: hidden;
    text-align: center;
}

.final-cta-bg {
    position: absolute;
    inset: 0;
    background-image: url('/static/assets/index/cta_bg.webp');
    background-size: cover;
    background-position: center;
    z-index: 0;
}

.final-cta-bg::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, 0.82);
}

.final-cta-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, rgba(124, 92, 252, 0.22) 0%, transparent 65%);
}

.final-cta-inner {
    position: relative;
    z-index: 2;
    max-width: 720px;
    margin: 0 auto;
    padding: 0 24px;
}

.final-cta-title {
    font-size: clamp(2rem, 4.5vw, 3.2rem);
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.03em;
    line-height: 1.12;
    margin-bottom: 20px;
}

.final-cta-title .accent-violet {
    background: linear-gradient(135deg, var(--lp-accent) 0%, var(--lp-accent-soft) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.final-cta-sub {
    font-size: 1.1rem;
    color: rgba(255,255,255,0.65);
    line-height: 1.7;
    margin-bottom: 44px;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}

.final-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 18px 44px;
    border-radius: 50px;
    background: linear-gradient(135deg, var(--lp-accent), #6344e8);
    color: #fff;
    font-size: 1.05rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 8px 32px rgba(124, 92, 252, 0.45);
    position: relative;
    overflow: hidden;
    margin-bottom: 28px;
}

.final-cta-btn::after {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
    transition: left 0.6s ease;
}

.final-cta-btn:hover::after { left: 100%; }

.final-cta-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 48px rgba(124, 92, 252, 0.6);
    color: #fff;
}

.final-cta-trust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

.final-cta-trust-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: rgba(255,255,255,0.5);
    font-weight: 500;
}

.final-cta-trust-item svg { color: var(--lp-success); flex-shrink: 0; }

@media (max-width: 600px) {
    .final-cta-section { padding: 80px 0; }
    .final-cta-btn { padding: 16px 32px; font-size: 0.95rem; }
    .final-cta-trust { flex-direction: column; gap: 10px; }
}

/* ---- Key Features Bento-Grid Redesign — 2026 ---- */
.features-grid-new {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 48px;
    position: relative;
    z-index: 2;
}

.feature-card-new {
    background: rgba(19, 19, 31, 0.9);
    border: 1px solid var(--lp-border, rgba(255, 255, 255, 0.08));
    border-radius: 20px;
    padding: 36px 30px;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                border-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                background 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.feature-card-new--wide {
    grid-column: span 2;
}

.feature-card-new::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.feature-card-new[data-theme="gold"]::before { background: linear-gradient(130deg, rgba(234, 179, 8, 0.08) 0%, transparent 60%); }
.feature-card-new[data-theme="blue"]::before { background: linear-gradient(130deg, rgba(56, 189, 248, 0.08) 0%, transparent 60%); }
.feature-card-new[data-theme="green"]::before { background: linear-gradient(130deg, rgba(16, 185, 129, 0.08) 0%, transparent 60%); }
.feature-card-new[data-theme="pink"]::before { background: linear-gradient(130deg, rgba(236, 72, 153, 0.08) 0%, transparent 60%); }
.feature-card-new[data-theme="purple"]::before { background: linear-gradient(130deg, rgba(168, 85, 247, 0.08) 0%, transparent 60%); }
.feature-card-new[data-theme="orange"]::before { background: linear-gradient(130deg, rgba(249, 115, 22, 0.08) 0%, transparent 60%); }

.feature-card-new:hover::before {
    opacity: 1;
}

.feature-card-new:hover {
    transform: translateY(-6px);
    background: rgba(20, 20, 35, 0.85);
}

/* Gold Theme */
.feature-card-new[data-theme="gold"] .feature-badge-new {
    background: rgba(234, 179, 8, 0.08);
    border-color: rgba(234, 179, 8, 0.25);
    color: #fde047;
}
.feature-card-new[data-theme="gold"] .feature-icon-new {
    color: #fde047;
}
.feature-card-new[data-theme="gold"]:hover {
    border-color: rgba(234, 179, 8, 0.35);
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5), 0 0 50px rgba(234, 179, 8, 0.08);
}
.feature-card-new[data-theme="gold"]:hover .feature-icon-new {
    background: #eab308;
    color: #0c0c14;
    border-color: #eab308;
    box-shadow: 0 6px 18px rgba(234, 179, 8, 0.35);
}
.feature-card-new[data-theme="gold"] .feature-bullets-new li svg {
    color: #eab308;
}

/* Blue Theme */
.feature-card-new[data-theme="blue"] .feature-badge-new {
    background: rgba(56, 189, 248, 0.08);
    border-color: rgba(56, 189, 248, 0.25);
    color: #7dd3fc;
}
.feature-card-new[data-theme="blue"] .feature-icon-new {
    color: #7dd3fc;
}
.feature-card-new[data-theme="blue"]:hover {
    border-color: rgba(56, 189, 248, 0.35);
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5), 0 0 50px rgba(56, 189, 248, 0.08);
}
.feature-card-new[data-theme="blue"]:hover .feature-icon-new {
    background: #38bdf8;
    color: #0c0c14;
    border-color: #38bdf8;
    box-shadow: 0 6px 18px rgba(56, 189, 248, 0.35);
}
.feature-card-new[data-theme="blue"] .feature-bullets-new li svg {
    color: #38bdf8;
}

/* Green Theme */
.feature-card-new[data-theme="green"] .feature-badge-new {
    background: rgba(16, 185, 129, 0.08);
    border-color: rgba(16, 185, 129, 0.25);
    color: #6ee7b7;
}
.feature-card-new[data-theme="green"] .feature-icon-new {
    color: #6ee7b7;
}
.feature-card-new[data-theme="green"]:hover {
    border-color: rgba(16, 185, 129, 0.35);
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5), 0 0 50px rgba(16, 185, 129, 0.08);
}
.feature-card-new[data-theme="green"]:hover .feature-icon-new {
    background: #10b981;
    color: #0c0c14;
    border-color: #10b981;
    box-shadow: 0 6px 18px rgba(16, 185, 129, 0.35);
}
.feature-card-new[data-theme="green"] .feature-bullets-new li svg {
    color: #10b981;
}

/* Pink Theme */
.feature-card-new[data-theme="pink"] .feature-badge-new {
    background: rgba(236, 72, 153, 0.08);
    border-color: rgba(236, 72, 153, 0.25);
    color: #fbcfe8;
}
.feature-card-new[data-theme="pink"] .feature-icon-new {
    color: #fbcfe8;
}
.feature-card-new[data-theme="pink"]:hover {
    border-color: rgba(236, 72, 153, 0.35);
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5), 0 0 50px rgba(236, 72, 153, 0.08);
}
.feature-card-new[data-theme="pink"]:hover .feature-icon-new {
    background: #ec4899;
    color: #0c0c14;
    border-color: #ec4899;
    box-shadow: 0 6px 18px rgba(236, 72, 153, 0.35);
}
.feature-card-new[data-theme="pink"] .feature-bullets-new li svg {
    color: #ec4899;
}

/* Purple Theme */
.feature-card-new[data-theme="purple"] .feature-badge-new {
    background: rgba(168, 85, 247, 0.08);
    border-color: rgba(168, 85, 247, 0.25);
    color: #d8b4fe;
}
.feature-card-new[data-theme="purple"] .feature-icon-new {
    color: #d8b4fe;
}
.feature-card-new[data-theme="purple"]:hover {
    border-color: rgba(168, 85, 247, 0.35);
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5), 0 0 50px rgba(168, 85, 247, 0.08);
}
.feature-card-new[data-theme="purple"]:hover .feature-icon-new {
    background: #a855f7;
    color: #0c0c14;
    border-color: #a855f7;
    box-shadow: 0 6px 18px rgba(168, 85, 247, 0.35);
}
.feature-card-new[data-theme="purple"] .feature-bullets-new li svg {
    color: #a855f7;
}

/* Orange Theme */
.feature-card-new[data-theme="orange"] .feature-badge-new {
    background: rgba(249, 115, 22, 0.08);
    border-color: rgba(249, 115, 22, 0.25);
    color: #ffedd5;
}
.feature-card-new[data-theme="orange"] .feature-icon-new {
    color: #ffedd5;
}
.feature-card-new[data-theme="orange"]:hover {
    border-color: rgba(249, 115, 22, 0.35);
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5), 0 0 50px rgba(249, 115, 22, 0.08);
}
.feature-card-new[data-theme="orange"]:hover .feature-icon-new {
    background: #f97316;
    color: #0c0c14;
    border-color: #f97316;
    box-shadow: 0 6px 18px rgba(249, 115, 22, 0.35);
}
.feature-card-new[data-theme="orange"] .feature-bullets-new li svg {
    color: #f97316;
}

.feature-badge-new {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: 30px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: rgba(124, 92, 252, 0.08);
    color: var(--lp-accent-soft, #A689FF);
    border: 1px solid rgba(124, 92, 252, 0.22);
    margin-bottom: 22px;
    z-index: 1;
    position: relative;
}

.feature-icon-new {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
    color: var(--lp-accent-soft, #A689FF);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 1;
    position: relative;
}

.feature-card-new:hover .feature-icon-new {
    background: var(--lp-accent, #7C5CFC);
    color: #fff;
    border-color: var(--lp-accent, #7C5CFC);
    transform: scale(1.05);
    box-shadow: 0 6px 18px rgba(124, 92, 252, 0.35);
}

.feature-title-new {
    font-size: 1.25rem;
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 12px 0;
    z-index: 1;
    position: relative;
    letter-spacing: -0.01em;
}

p.feature-desc-new {
    font-size: 0.92rem;
    line-height: 1.62;
    color: rgba(255, 255, 255, 0.65);
    margin: 0;
    z-index: 1;
    position: relative;
}

.feature-bullets-new {
    list-style: none;
    padding: 0;
    margin: 24px 0 0 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 24px;
    width: 100%;
    z-index: 1;
    position: relative;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    padding-top: 20px;
}

.feature-bullets-new li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.8);
    font-weight: 500;
}

.feature-bullets-new li svg {
    color: var(--lp-success, #3EBB8E);
    flex-shrink: 0;
}

/* Responsive bento rules */
@media (max-width: 992px) {
    .features-grid-new {
        grid-template-columns: repeat(2, 1fr);
    }
    .feature-card-new--wide {
        grid-column: span 2;
    }
}

@media (max-width: 768px) {
    .features-grid-new {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .feature-card-new--wide {
        grid-column: span 1;
    }
    .feature-bullets-new {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

/* ---- Hero Product Image Styles ---- */
.hero-product-image {
    width: 100%;
    height: auto;
    border-radius: 28px;
    border: 1px solid rgba(124, 92, 252, 0.25);
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.6), 0 0 80px rgba(124, 92, 252, 0.12);
    display: block;
    transition: transform 0.5s ease, box-shadow 0.5s ease;
}

.hero-mockup-wrap:hover .hero-product-image {
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 45px 90px rgba(0, 0, 0, 0.7), 0 0 100px rgba(124, 92, 252, 0.2);
}

/* ============================================
   WORKFLOW SECTION (ZIGZAG PRODUCT TOUR) — 2026
   ============================================ */
.workflow-section-new {
    padding: 120px 0;
    background: var(--lp-surface, #0C0C14);
    border-top: 1px solid var(--lp-border, rgba(255, 255, 255, 0.08));
    border-bottom: 1px solid var(--lp-border, rgba(255, 255, 255, 0.08));
    position: relative;
    overflow: hidden;
}

/* Subtle glow effects behind the zigzag rows */
.workflow-section-new::before {
    content: '';
    position: absolute;
    top: 20%;
    left: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(124, 92, 252, 0.06) 0%, transparent 70%);
    pointer-events: none;
    z-index: 0;
}

.workflow-section-new::after {
    content: '';
    position: absolute;
    bottom: 20%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(124, 92, 252, 0.06) 0%, transparent 70%);
    pointer-events: none;
    z-index: 0;
}

.workflow-header-new {
    text-align: center;
    margin-bottom: 84px;
    position: relative;
    z-index: 1;
}

.workflow-title-new {
    font-size: clamp(2.2rem, 4vw, 3rem);
    font-weight: 800;
    color: var(--text-primary, #ffffff);
    letter-spacing: -0.03em;
    margin-bottom: 20px;
    line-height: 1.2;
}

.workflow-sub-new {
    font-size: 1.15rem;
    color: var(--text-secondary, rgba(255, 255, 255, 0.65));
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

.workflow-steps-list {
    display: flex;
    flex-direction: column;
    gap: 120px;
    position: relative;
    z-index: 1;
}

/* Row configuration */
.workflow-step-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

.workflow-step-row--reverse {
    grid-template-columns: 1fr 1fr;
}

.workflow-step-row--reverse .workflow-step-text {
    grid-column: 2;
}

.workflow-step-row--reverse .workflow-step-visual {
    grid-column: 1;
    grid-row: 1;
}

/* Text elements */
.workflow-step-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.workflow-step-num {
    font-size: 2.8rem;
    font-weight: 900;
    font-family: 'Outfit', sans-serif;
    background: linear-gradient(135deg, var(--lp-accent, #7C5CFC) 0%, var(--lp-accent-soft, #A689FF) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 12px;
    line-height: 1;
    letter-spacing: -0.02em;
}

.workflow-step-title {
    font-size: clamp(1.6rem, 2.5vw, 2.2rem);
    font-weight: 800;
    color: var(--text-primary, #ffffff);
    margin: 0 0 20px 0;
    letter-spacing: -0.02em;
    line-height: 1.25;
}

.workflow-step-desc {
    font-size: 1.05rem;
    color: var(--text-secondary, rgba(255, 255, 255, 0.65));
    line-height: 1.7;
    margin: 0 0 32px 0;
}

.workflow-step-features {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

.workflow-step-features li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 0.98rem;
    color: var(--text-primary, #ffffff);
    font-weight: 500;
}

.workflow-step-features li svg {
    color: var(--lp-accent-soft, #A689FF);
    flex-shrink: 0;
    margin-top: 4px;
}

/* Visual elements: Browser mockup */
.workflow-step-visual {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

/* Align mockup browser images on desktop to their respective outer sides */
.workflow-step-row .workflow-step-visual {
    justify-content: flex-end;
}

.workflow-step-row--reverse .workflow-step-visual {
    justify-content: flex-start;
}

.mockup-browser {
    background: rgba(18, 18, 30, 0.9);
    border: 1px solid var(--lp-border, rgba(255, 255, 255, 0.08));
    border-radius: 16px;
    width: 100%;
    max-width: 320px; /* Reduced max-width to make mockup browser images smaller and more elegant */
    overflow: hidden;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.55), 0 0 40px rgba(124, 92, 252, 0.04);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                border-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.mockup-browser:hover {
    transform: translateY(-6px) scale(1.01);
    border-color: var(--lp-accent-border, rgba(124, 92, 252, 0.35));
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.65), 0 0 60px rgba(124, 92, 252, 0.16);
}

.mockup-browser-header {
    background: rgba(255, 255, 255, 0.03);
    padding: 14px 20px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--lp-border, rgba(255, 255, 255, 0.08));
    gap: 16px;
}

.mockup-browser-header .dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
    opacity: 0.75;
}

.mockup-browser-header .dot.red { background: var(--lp-danger, #FF5A5A); }
.mockup-browser-header .dot.yellow { background: var(--lp-gold, #FFBD2E); }
.mockup-browser-header .dot.green { background: var(--lp-success, #27C93F); }

.mockup-browser-header .browser-address {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--lp-border, rgba(255, 255, 255, 0.08));
    border-radius: 6px;
    padding: 5px 16px;
    font-size: 0.72rem;
    color: rgba(255, 255, 255, 0.4);
    font-family: monospace;
    flex-grow: 1;
    text-align: center;
    letter-spacing: 0.02em;
    max-width: 320px;
    margin: 0 auto;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.mockup-browser-body {
    padding: 0;
    margin: 0;
    line-height: 0;
    position: relative;
    background: #0f0f18;
    max-height: 380px; /* Cap the height of the mockup visual to prevent massive images */
    overflow: hidden;
}

.mockup-browser-body::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: linear-gradient(to top, #0f0f18 0%, transparent 100%);
    pointer-events: none;
}

.mockup-browser-body img {
    width: 100%;
    height: auto;
    display: block;
    filter: brightness(0.92) contrast(1.02);
    transition: filter 0.4s ease, transform 0.4s ease;
}

.mockup-browser:hover .mockup-browser-body img {
    filter: brightness(1);
}

/* Responsive adjustments */
@media (max-width: 992px) {
    .workflow-step-row,
    .workflow-step-row--reverse {
        gap: 48px;
    }
}

@media (max-width: 900px) {
    .workflow-section-new {
        padding: 80px 0;
    }
    
    .workflow-header-new {
        margin-bottom: 56px;
    }
    
    .workflow-steps-list {
        gap: 72px;
    }
    
    .workflow-step-row,
    .workflow-step-row--reverse {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    
    .workflow-step-row--reverse .workflow-step-text {
        grid-column: auto;
    }
    
    .workflow-step-row--reverse .workflow-step-visual {
        grid-column: auto;
        grid-row: auto;
    }

    .workflow-step-visual {
        justify-content: center;
    }
    
    .workflow-step-num {
        font-size: 2.4rem;
        margin-bottom: 8px;
    }
    
    .workflow-step-title {
        margin-bottom: 16px;
    }
    
    .workflow-step-desc {
        margin-bottom: 24px;
    }
}

/* ============================================
   TRANSPARENT MECHANICS BENTO GRID — 2026
   ============================================ */
.mechanics-section-new {
    padding: 120px 0;
    background: var(--lp-surface, #0C0C14);
    border-top: 1px solid var(--lp-border, rgba(255, 255, 255, 0.08));
    position: relative;
    overflow: hidden;
}

.mechanics-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

.mechanics-header {
    text-align: center;
    margin-bottom: 52px;
}

.mechanics-grid-new {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    position: relative;
    z-index: 2;
}

.mechanics-card-new {
    background: rgba(19, 19, 31, 0.9);
    border: 1px solid var(--lp-border, rgba(255, 255, 255, 0.08));
    border-radius: 20px;
    padding: 32px 28px;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                border-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                background 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.mechanics-card-new::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(130deg, rgba(124, 92, 252, 0.08) 0%, transparent 60%);
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 0;
    pointer-events: none;
}

.mechanics-card-new:hover {
    transform: translateY(-5px);
    border-color: var(--lp-accent-border, rgba(124, 92, 252, 0.35));
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5), 0 0 50px rgba(124, 92, 252, 0.08);
    background: rgba(20, 20, 35, 0.9);
}

.mechanics-card-new:hover::before {
    opacity: 1;
}

.mechanics-badge-new {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 30px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: rgba(124, 92, 252, 0.08);
    color: var(--lp-accent-soft, #A689FF);
    border: 1px solid rgba(124, 92, 252, 0.22);
    margin-bottom: 20px;
    z-index: 1;
    position: relative;
}

.mechanics-widget-new {
    width: 100%;
    height: 140px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.04);
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: 24px;
    z-index: 1;
    position: relative;
    padding: 16px;
    overflow: hidden;
}

.mechanics-card-new:hover .mechanics-widget-new {
    border-color: rgba(124, 92, 252, 0.15);
    background: rgba(124, 92, 252, 0.02);
}

.mechanics-card-title-new {
    font-size: 1.15rem;
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 10px 0;
    z-index: 1;
    position: relative;
    letter-spacing: -0.01em;
}

.mechanics-card-desc-new {
    font-size: 0.9rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.65);
    margin: 0;
    z-index: 1;
    position: relative;
}

/* Slide item components styling (repurposed for bento grid widgets) */
.slide-icon-wrap {
    width: 54px;
    height: 54px;
    border-radius: 14px;
    background: rgba(124, 92, 252, 0.08);
    border: 1px solid rgba(124, 92, 252, 0.22);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lp-accent-soft, #A689FF);
    font-size: 1.5rem;
    transition: all 0.4s ease;
}

.mechanics-card-new:hover .slide-icon-wrap {
    background: var(--lp-accent, #7C5CFC);
    color: #fff;
    border-color: var(--lp-accent, #7C5CFC);
    box-shadow: 0 4px 12px rgba(124, 92, 252, 0.3);
}

.slide-icon-wrap.coin-icon {
    background: rgba(245, 200, 66, 0.08);
    border-color: rgba(245, 200, 66, 0.25);
    color: var(--lp-gold, #F5C842);
}

.mechanics-card-new:hover .slide-icon-wrap.coin-icon {
    background: var(--lp-gold, #F5C842);
    border-color: var(--lp-gold, #F5C842);
    box-shadow: 0 4px 12px rgba(245, 200, 66, 0.3);
}

.slide-icon-wrap.warning-icon {
    background: rgba(255, 90, 90, 0.08);
    border-color: rgba(255, 90, 90, 0.25);
    color: var(--lp-danger, #FF5A5A);
}

.mechanics-card-new:hover .slide-icon-wrap.warning-icon {
    background: var(--lp-danger, #FF5A5A);
    border-color: var(--lp-danger, #FF5A5A);
    box-shadow: 0 4px 12px rgba(255, 90, 90, 0.3);
}

.slide-icon-wrap.refund-icon {
    background: rgba(62, 187, 142, 0.08);
    border-color: rgba(62, 187, 142, 0.25);
    color: var(--lp-success, #3EBB8E);
}

.mechanics-card-new:hover .slide-icon-wrap.refund-icon {
    background: var(--lp-success, #3EBB8E);
    border-color: var(--lp-success, #3EBB8E);
    box-shadow: 0 4px 12px rgba(62, 187, 142, 0.3);
}

.slide-cost {
    font-size: 1.5rem;
    font-weight: 800;
    color: #ffffff;
    font-family: 'Outfit', sans-serif;
    letter-spacing: -0.01em;
}

.slide-cost .cost-unit {
    font-size: 0.85rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.5);
}

.status-pill {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.status-pill--success {
    background: rgba(62, 187, 142, 0.1);
    border: 1px solid rgba(62, 187, 142, 0.25);
    color: var(--lp-success, #3EBB8E);
}

.status-pill--gold {
    background: rgba(245, 200, 66, 0.1);
    border: 1px solid rgba(245, 200, 66, 0.25);
    color: var(--lp-gold, #F5C842);
}

.status-pill--danger {
    background: rgba(255, 90, 90, 0.1);
    border: 1px solid rgba(255, 90, 90, 0.25);
    color: var(--lp-danger, #FF5A5A);
}

.status-pill--success-soft {
    background: rgba(62, 187, 142, 0.08);
    border: 1px solid rgba(62, 187, 142, 0.15);
    color: var(--lp-success, #3EBB8E);
}

/* Conversion flow widget */
.conversion-flow {
    display: flex;
    align-items: center;
    width: 100%;
    justify-content: center;
}

.flow-box {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
    padding: 10px 14px;
    border-radius: 10px;
    text-align: center;
    flex-grow: 1;
}

.flow-box--gold {
    background: rgba(124, 92, 252, 0.06);
    border-color: rgba(124, 92, 252, 0.22);
}

.flow-label {
    display: block;
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.58rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
}

.flow-value {
    display: block;
    color: #ffffff;
    font-weight: 800;
    font-size: 0.95rem;
    font-family: 'Outfit', sans-serif;
}

.flow-box--gold .flow-value {
    color: var(--lp-accent-soft, #A689FF);
}

.flow-arrow {
    color: var(--lp-accent-soft, #A689FF);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Toggle Switch mock */
.mock-toggle-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
    padding: 12px 18px;
    border-radius: 12px;
    width: 100%;
}

.toggle-text {
    color: #ffffff;
    font-size: 0.88rem;
    font-weight: 600;
}

.mock-switch {
    width: 44px;
    height: 24px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    position: relative;
    transition: background 0.3s ease;
}

.mock-switch.active {
    background: var(--lp-accent, #7C5CFC);
    box-shadow: 0 0 10px rgba(124, 92, 252, 0.4);
}

.mock-handle {
    width: 18px;
    height: 18px;
    background: #ffffff;
    border-radius: 50%;
    position: absolute;
    top: 3px;
    left: 3px;
    transition: left 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.mock-switch.active .mock-handle {
    left: 23px;
}

/* Responsive mechanics bento rules */
@media (max-width: 992px) {
    .mechanics-grid-new {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
}

@media (max-width: 768px) {
    .mechanics-section-new {
        padding: 80px 0;
    }
    .mechanics-grid-new {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .nav-actions {
        right: 0 !important;
        transform: translateX(100%) !important;
        transition: transform 0.4s var(--ease-out-expo) !important;
    }
    .nav-actions.active {
        transform: translateX(0) !important;
    }
}

@media (max-width: 400px) {
    .nav-container {
        padding: 0 10px !important;
    }
    .logo {
        gap: 6px !important;
    }
    .logo span {
        font-size: 0.95rem !important;
    }
    .nav-cta {
        padding: 6px 12px !important;
        font-size: 0.8rem !important;
    }
    .mobile-menu-toggle {
        margin-left: 4px !important;
        padding: 6px !important;
    }

    /* Hero Section Responsive Tweaks */
    .hero-two-col {
        gap: 20px !important;
        padding: 30px 0 50px !important;
    }
    .hero-new-title {
        font-size: 1.65rem !important;
        line-height: 1.35 !important;
    }
    .hero-new-sub {
        font-size: 0.95rem !important;
        margin-bottom: 20px !important;
        line-height: 1.6 !important;
        padding: 0 4px !important;
    }
    .hero-cta-row {
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100% !important;
        gap: 10px !important;
        margin-bottom: 20px !important;
        padding: 0 8px !important;
    }
    .hero-cta-row .btn {
        width: 100% !important;
        padding: 12px 20px !important;
        font-size: 0.88rem !important;
        text-align: center !important;
    }
    .hero-trust-pills {
        gap: 8px 12px !important;
        justify-content: center !important;
        padding: 0 8px !important;
    }
    .hero-trust-pill {
        font-size: 0.78rem !important;
    }
    .hero-proof-line {
        font-size: 0.78rem !important;
        margin-top: 18px !important;
        text-align: center !important;
        padding: 0 8px !important;
    }
}

@media (max-width: 340px) {
    .logo span {
        display: none !important;
    }
    .hero-new-title {
        font-size: 1.45rem !important;
    }
    .hero-new-sub {
        font-size: 0.88rem !important;
    }
}

@media (max-width: 250px) {
    .nav-container {
        padding: 0 4px !important;
    }
    .logo {
        gap: 2px !important;
    }
    .logo span {
        display: none !important;
    }
    .nav-cta {
        padding: 4px 8px !important;
        font-size: 0.72rem !important;
        white-space: normal !important;
        word-break: break-word !important;
        max-width: 70px !important;
        text-align: center !important;
    }
    .mobile-menu-toggle {
        margin-left: 2px !important;
        padding: 4px !important;
    }
    .hero-new-title {
        font-size: 1.25rem !important;
    }
    .hero-new-sub {
        font-size: 0.8rem !important;
    }
    .hero-cta-row .btn {
        padding: 8px 12px !important;
        font-size: 0.78rem !important;
        white-space: normal !important;
        word-break: break-word !important;
        text-align: center !important;
    }
    .hero-trust-pills {
        flex-direction: column !important;
        align-items: center !important;
        gap: 6px !important;
    }
}
/* ============================================
   WHERE AM I - ON-DEMAND FACE HIGHLIGHTING
   ============================================ */

.where-am-i-swiper-btn {
    background: rgba(16, 185, 129, 0.15) !important;
    border: 1px solid rgba(16, 185, 129, 0.4) !important;
    color: #34d399 !important;
    border-radius: 20px !important;
    padding: 6px 14px !important;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
}

.where-am-i-swiper-btn:hover {
    background: rgba(16, 185, 129, 0.28) !important;
    border-color: #10b981 !important;
    color: #a7f3d0 !important;
    box-shadow: 0 0 16px rgba(16, 185, 129, 0.45) !important;
    transform: translateY(-1px) !important;
}

.where-am-i-swiper-btn.loading .btn-icon {
    animation: spin 0.8s linear infinite !important;
}

.guest-face-highlight-box {
    position: absolute;
    border: 1.5px solid #10b981;
    border-radius: 8px;
    background: radial-gradient(circle at center, rgba(16, 185, 129, 0.2) 0%, rgba(6, 182, 212, 0.04) 100%);
    box-shadow: 0 0 20px rgba(16, 185, 129, 0.65), inset 0 0 10px rgba(16, 185, 129, 0.3);
    z-index: 999999;
    pointer-events: none;
    box-sizing: border-box;
    animation: faceBoxGlow 2.5s ease-in-out infinite alternate, faceBoxReveal 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Four Corner Target Brackets for High-Tech Camera Viewfinder Aesthetic */
.guest-face-highlight-box::before,
.guest-face-highlight-box::after {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    border-color: #34d399;
    border-style: solid;
    pointer-events: none;
}

.guest-face-highlight-box::before {
    top: -2px;
    left: -2px;
    border-width: 2px 0 0 2px;
    border-top-left-radius: 4px;
}

.guest-face-highlight-box::after {
    bottom: -2px;
    right: -2px;
    border-width: 0 2px 2px 0;
    border-bottom-right-radius: 4px;
}

.guest-face-highlight-tag {
    position: absolute;
    top: -28px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(15, 23, 42, 0.94);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(16, 185, 129, 0.55);
    color: #34d399;
    font-size: 10px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 12px;
    white-space: nowrap;
    font-family: system-ui, -apple-system, sans-serif;
    letter-spacing: 0.06em;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.6), 0 0 8px rgba(16, 185, 129, 0.3);
    z-index: 1000000;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    animation: tagSlideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.guest-face-highlight-tag .beacon-dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #10b981;
    box-shadow: 0 0 8px #10b981;
    animation: beaconPulse 1.5s infinite;
}

.guest-face-highlight-tag .highlight-close-btn {
    background: transparent;
    border: none;
    color: rgba(255, 255, 255, 0.6);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    margin-left: 6px;
    padding: 0 3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    pointer-events: auto;
    border-radius: 50%;
}

.guest-face-highlight-tag .highlight-close-btn:hover {
    color: #ef4444;
    background: rgba(239, 68, 68, 0.2);
    transform: scale(1.15);
}

@keyframes faceBoxReveal {
    from {
        opacity: 0;
        transform: scale(0.92);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes tagSlideUp {
    from {
        opacity: 0;
        transform: translate(-50%, 6px);
    }
    to {
        opacity: 1;
        transform: translate(-50%, 0);
    }
}

@keyframes faceBoxGlow {
    0% {
        box-shadow: 0 0 14px rgba(16, 185, 129, 0.5), inset 0 0 8px rgba(16, 185, 129, 0.2);
        border-color: #10b981;
    }
    100% {
        box-shadow: 0 0 24px rgba(16, 185, 129, 0.85), inset 0 0 14px rgba(16, 185, 129, 0.4);
        border-color: #34d399;
    }
}

@keyframes beaconPulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
        box-shadow: 0 0 6px #10b981;
    }
    50% {
        transform: scale(1.4);
        opacity: 0.7;
        box-shadow: 0 0 12px #34d399;
    }
}





